当用户在提示符下按下ok时(以前清空提示字段),如何检测空值?我需要用new(空)值覆盖旧值.我这样做:
var oldVal = 'something';
var newVal = prompt("Enter new value:", oldVal);
Run Code Online (Sandbox Code Playgroud)
目前,如果用户清空值并单击"确定",则返回null.
但同时我需要检查空值,因为如果用户单击"取消",它将返回null,我不想将其作为新值.
jfr*_*d00 16
null如果用户点击OK 则不返回- 它将返回一个空字符串.您可能没有正确测试返回值.如果要在三种不同的返回状态之间进行测试,可以这样做:
var oldVal = 'something';
var newVal = prompt("Enter new value:", oldVal);
if (newVal === "") {
// user pressed OK, but the input field was empty
} else if (newVal) {
// user typed something and hit OK
} else {
// user hit cancel
}
Run Code Online (Sandbox Code Playgroud)
工作演示:http://jsfiddle.net/jfriend00/Kx2EK/
您的评论表明您正在使用此代码来测试结果:
if(!newVal || oldVal == newVal)return false;
Run Code Online (Sandbox Code Playgroud)
当用户清除该字段并按下OK时,newVal将为""(空字符串). !newVal会true这样你会回来的false.空字符串就像是一个假值null.你需要更明确地检查null这样:
if (newVal === null || newVal === oldVal) {
// cancel button was hit
// or the same value was entered
return false;
}
Run Code Online (Sandbox Code Playgroud)
这个逻辑的工作演示:http://jsfiddle.net/jfriend00/ynwBx/
注意:我正在使用===以防止javascript解释器进行任何类型转换,因为我只想显式检查null.
| 归档时间: |
|
| 查看次数: |
25237 次 |
| 最近记录: |