一个函数中带有 HTML(可选)按钮的 JavaScript 中的 if 表达式
Posted
技术标签:
【中文标题】一个函数中带有 HTML(可选)按钮的 JavaScript 中的 if 表达式【英文标题】:If-expression in JavaScript with HTML (optional) button in one function 【发布时间】:2016-01-26 04:00:19 【问题描述】:我正在创建一个带有字段的 html 表格,这些字段必须填写,但我想将其中一个字段设为可选。我的代码是这样的:
name.html
...
<table>
<tr>
<td>A number:</td>
<td><input id="numb1" type="text"/></td>
</tr>
<tr>
<td>Anoder number (optional)</td>
<td><input id="numb2" type="text"></td>
</tr>
</table>
<input type="button" value="Click" onclick="forfun()"/>
<pre id="result">
Result
</pre>
...
在我的jaava.js
中,我想使用一个 if-else 表达式,定义如果可选字段不为空,那么变量应该取数字的值,写在字段中。
function forfun()
var numberOne=document.getElementById("numb1").value;
numberOne =parseFloat(numberOne); // numberOne is now really a number
var numberTwo=document.getElementById("numb2").value;
numberTwo=parseFloat(numberTwo);
...
if(numberTwo==NaN) //Here comes the problem, I tried also with
//undefined and ==0, but after pressing the button, I become the results
//of my functions in this loop with result NaN
numberTwo=2;
//and so on
...
else
//After I fill the second field, everything here is ok
if
后面的括号内应该写什么?你能给我一些想法吗?
【问题讨论】:
试试 if(numberTwo == null || numberTwo == "") 让你成为一个小提琴手:jsfiddle.net/p3xunedL。另外,不要使用表格来布置表单。 谢谢,它适用于这个+parseFloat,不是在if循环之前写的,而是在else循环中:) 【参考方案1】:与NaN
比较总是返回false
,所以即使NaN == NaN
也会返回false
。而是使用内置的isNaN()
函数:
if (isNaN(numberTwo))
【讨论】:
与===''
相比更好。 IsNaN 只能用于预期为数字的值。因此Not A Number
.
与空字符串比较不会正确处理非空、非数字输入。你是对的,isNaN
应该只用于预期为数字的值,但我想强调他的问题的原因(与 NaN 相比),并提供一种替代方法,但在正确的方式。以上是关于一个函数中带有 HTML(可选)按钮的 JavaScript 中的 if 表达式的主要内容,如果未能解决你的问题,请参考以下文章
在 xib 中带有可选 UIImageView 的自定义 UITableViewCell