我的html中有一个输入字段,它基本上将数量发送到一个observable然后根据数量重定向到不同的页面,但我想确保即使一个人没有写入数量和类型的字符串价值“应该仍然能够被重定向,但我不知道如何实现这一点。
HTML CODE
<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的其余代码
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()是否为String,然后重定向用户。需要帮助。
答案 0 :(得分:3)
因此,我们可以撤销问题并查看金额是否为数字,然后采取相应行动:
var value = self.amount();
if((+value == value) && !isNaN(+value)){
//Yey we have a valid number.
}
这可能是我发现的松散等式运算符的少数有效用法之一(它防止null和&#34;&#34;传入)。它使用一元加运算符加上一点点魔法,它是检查值是否为数字的一种很好的简短方法。
如果你愿意,你可以把它放到一个功能中,&#39; IsNumber&#39;例如:
function isNumber(value){
//loose equality operator used to guard against nulls, undefined and empty string
return ((+value == value) && !isNaN(+value));
}