redirect knockout js observable if containing string
我的HTML中有一个输入字段,它基本上将金额发送到一个可观察的页面,然后根据金额重定向到不同的页面,但是我想确保即使一个不写"字符串值"中的金额和类型的人仍然能够被重定向,但我不确定如何完成这一点。
HTML代码
1 2 | <input id="amount" type="text" data-bind="value : amount" /> <button class="btn button2" type="submit" data-bind=" valueUpdate:'afterkeydown' , click: $root.borrow_first_pageview"></button> |
我不想在HTML中写type=number,因为我想知道它是如何签入JS的。
下面是使用knockout.js的其余代码
1 2 3 4 5 6 7 8 9 10 | self.borrow_first_pageview = function () { if(self.amount()){ window.location.href = BASEURL +"index.php/moneyexchange/borrow_first_page/" + self.amount(); }else if(typeof self.amount() == 'string'){ window.location.href = BASEURL +"index.php/moneyexchange/borrow_first_page/" + 2500; }else { window.location.href = BASEURL +"index.php/moneyexchange/borrow_first_page/" + 2500; } }; |
号
是否有方法检查self.amount()是否为字符串,然后重定向用户。需要帮助。
因此,我们可以逆转问题,看看金额是否为数字,然后相应地采取行动:
1 2 3 4 | var value = self.amount(); if((+value == value) && !isNaN(+value)){ //Yey we have a valid number. } |
这可能是我发现的几个松散的相等运算符的有效用法之一(它防止空值和"传入")。它使用了一元加上一点魔力的运算符,这是一个检查值是否是数字的好方法。
如果您愿意,可以将其放入函数中,例如"isNumber":
1 2 3 4 | function isNumber(value){ //loose equality operator used to guard against nulls, undefined and empty string return ((+value == value) && !isNaN(+value)); } |
号