我想用随机数填充所有空数字段。我可以使用随机数填充所有字段,如下所示。
$.each(numberField, function () {
x = Math.floor((Math.random() * 10) + 1);
($(this).val(x));
});
但是,如果我尝试将其包裹在
中 if (numberField.val() === "")
它不起作用
我在这里做错了什么? see fiddle
<input type="number" value="0">
<input type="number" value="">
<input type="number" value="4">
<input type="number" value="5">
<input type="number" value="">
var numberField = $('input[type=number]');
var x = '';
if (numberField.val() === "") {
$.each(numberField, function () {
x = Math.floor((Math.random() * 10) + 1);
($(this).val(x));
});
}
答案 0 :(得分:3)
您需要移动您的条件(您正在查看数组是否等于&#34;&#34;,从未出现过这种情况)。您还需要修剪该值以检查它是否真的为空:
var numberField = $('input[type=number]');
var x = '';
$.each(numberField, function () {
if ($.trim($(this).val()) === "") {
x = Math.floor((Math.random() * 10) + 1);
($(this).val(x));
}
});
答案 1 :(得分:1)
在您的示例中,numberField是一个数组,因此您的代码必须如下所示:
var numberField = $('input[type=number]');
var x = '';
$.each(numberField, function () {
if ($(this).val() === "") {
x = Math.floor((Math.random() * 10) + 1);
$(this).val(x);
}
});
答案 2 :(得分:0)
请参阅updated fiddle。
$.each(numberField, function (k, v) {
if ($(v).val() === "") {
x = Math.floor((Math.random() * 10) + 1);
($(v).val(x));
}
});
查看jQuery每个函数的doc。
答案 3 :(得分:0)
试试这个......
var numberField = $('input[type=number]');
var x = '';
$.each(numberField, function () {
if (this.value === "") { // should check the value inside the loop.. not outside
x = Math.floor((Math.random() * 10) + 1);
this.value = x;
}
});
答案 4 :(得分:0)
我认为问题在于:
numberField.val()
相反,请使用
$(this).val()
所以......
var numberField = $('input[type=number]');
var x = '';
$.each(numberField, function () {
alert($(this).val());
if ($(this).val() === ""){
x = Math.floor((Math.random() * 10) + 1);
($(this).val(x));
};
});
答案 5 :(得分:0)
您只能匹配没有值的字段,如下所示:
$('input[type=number][value=""]').each(function () {
this.value=Math.floor((Math.random() * 10) + 1);
});
这里是demo。