Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果包含字符串,则重定向可观察的敲除js_Javascript_Jquery_Html_Knockout.js - Fatal编程技术网

Javascript 如果包含字符串,则重定向可观察的敲除js

Javascript 如果包含字符串,则重定向可观察的敲除js,javascript,jquery,html,knockout.js,Javascript,Jquery,Html,Knockout.js,我的html中有一个输入字段,它基本上会将金额发送到一个可观察对象,然后根据金额重定向到不同的页面,但我想确保即使一个不写金额并键入“字符串值”的人仍然能够重定向,但我不确定如何做到这一点 HTML代码 <input id="amount" type="text" data-bind="value : amount" /> <button class="btn button2" type="submit" data-bind=" valueUpdate:'afterkeyd

我的html中有一个输入字段,它基本上会将金额发送到一个可观察对象,然后根据金额重定向到不同的页面,但我想确保即使一个不写金额并键入“字符串值”的人仍然能够重定向,但我不确定如何做到这一点

HTML代码

<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>

是否有方法检查self.amount()是否为字符串,然后重定向用户。需要帮助。

因此我们可以扭转问题,查看金额是否为数字,然后采取相应措施:

var value = self.amount();
if((+value == value) && !isNaN(+value)){
    //Yey we have a valid number.
}
这可能是我发现的几个松散相等运算符的有效用法之一(它可以防止传入null和“”。它使用一元加号运算符加上一点魔力,这是一种很好的检查值是否为数字的简短方法

如果愿意,您可以将其放入函数中,'IsNumber'例如:

function isNumber(value){
    //loose equality operator used to guard against nulls, undefined and empty string
    return ((+value == value) && !isNaN(+value));
}

因此,我们可以扭转问题,看看金额是否为数字,然后相应地采取行动:

var value = self.amount();
if((+value == value) && !isNaN(+value)){
    //Yey we have a valid number.
}
这可能是我发现的几个松散相等运算符的有效用法之一(它可以防止传入null和“”。它使用一元加号运算符加上一点魔力,这是一种很好的检查值是否为数字的简短方法

如果愿意,您可以将其放入函数中,'IsNumber'例如:

function isNumber(value){
    //loose equality operator used to guard against nulls, undefined and empty string
    return ((+value == value) && !isNaN(+value));
}

可能的副本。(虽然可能被问题中的其他细节稍微掩盖了,但在
self.amount
中,在
else if
条件下,不会执行
amount以获取其值。但最有可能的是一个被复制者nonetheles…)。或者,它可能是So的复制品。。您实际需要检查的是金额是否为十进制/整数。您可以将parseInt/parseFloat用于that@Magrangs不,我想检查是否有人输入字符串而不是数量,因为如果有人输入字符串,函数会崩溃,所以我需要检查它,然后重定向它们。@MasnadNihit是的,所以如果它解析为十进制/int,您知道它不是string@Jeroen没有那么相似,因为我尝试了typeOf,但我不确定如何使它工作。可能是的副本。(虽然可能被问题中的其他细节稍微掩盖了,但在
self.amount
中,在
else if
条件下,不会执行
amount以获取其值。但最有可能的是一个被复制者nonetheles…)。或者,它可能是So的复制品。。您实际需要检查的是金额是否为十进制/整数。您可以将parseInt/parseFloat用于that@Magrangs不,我想检查是否有人输入字符串而不是数量,因为如果有人输入字符串,函数会崩溃,所以我需要检查它,然后重定向它们。@MasnadNihit是的,所以如果它解析为十进制/int,您知道它不是string@Jeroen没有那么相似,因为我试过typeOf,但我不知道如何使它工作。这个工作!非常感谢,我不知道+value和isNan(+value)是什么意思,但它确实有用。哈,是的,它有点神秘,但很简洁。+被称为一元加号,它对值进行强制,请在控制台中尝试。isNaN检查值是否不是数字。松散相等运算符==没有进行严格的比较(使用类型,例如+“2”==“2”为真,而+“2blah”==“2”为假),因此结合isNaN检查可以检查各种数字是否确实是数字。这很有效!非常感谢,我不知道+value和isNan(+value)是什么意思,但它确实有用。哈,是的,它有点神秘,但很简洁。+被称为一元加号,它对值进行强制,请在控制台中尝试。isNaN检查值是否不是数字。松散相等运算符==不进行严格的比较(使用类型,例如+“2”==“2”为真,但+“2blah”==“2”为假),因此结合isNaN检查可以检查各种数字是否确实是数字。