Javascript 如果输入字段为空,则用随机数填充

Javascript 如果输入字段为空,则用随机数填充,javascript,jquery,html,forms,random,Javascript,Jquery,Html,Forms,Random,我想用随机数填充所有空数字字段。我可以用一个随机数填充所有字段,如下所示 $.each(numberField, function () { x = Math.floor((Math.random() * 10) + 1); ($(this).val(x)); }); 但是如果我试着把它包起来 if (numberField.val() === "") 它不起作用 我做错了什么 变量numberField=$('input[type=

我想用随机数填充所有空数字字段。我可以用一个随机数填充所有字段,如下所示

    $.each(numberField, function () {
        x = Math.floor((Math.random() * 10) + 1);
        ($(this).val(x));
    });
但是如果我试着把它包起来

    if (numberField.val() === "")
它不起作用

我做错了什么


变量numberField=$('input[type=number]');
var x=“”;
如果(numberField.val()=“”){
$.each(numberField,function(){
x=数学楼层((数学随机()*10)+1);
($(this.val(x));
});
}
请参阅

查看jQuery每个函数的

查看jQuery每个函数的函数名。

试试这个

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;
    }
});
试试这个

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;
    }
});

在您的示例中,numberField是一个数组,因此您的代码必须如下所示:

var numberField = $('input[type=number]');
var x = '';

    $.each(numberField, function () {
       if ($(this).val() === "") {
          x = Math.floor((Math.random() * 10) + 1);
          $(this).val(x);
        }
    });
$('input[type=number][value=""]').each(function () {
        this.value=Math.floor((Math.random() * 10) + 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);
        }
    });
$('input[type=number][value=""]').each(function () {
        this.value=Math.floor((Math.random() * 10) + 1);
});

您需要移动您的条件(您正在查看数组是否等于“”,但事实并非如此)。您还需要修剪该值以检查它是否真的为空:

var numberField = $('input[type=number]');
var x = '';

$.each(numberField, function () {
    if ($.trim($(this).val()) === "") {
        x = Math.floor((Math.random() * 10) + 1);
        ($(this).val(x));
    }
});

您需要移动您的条件(您正在查看数组是否等于“”,但事实并非如此)。您还需要修剪该值以检查它是否真的为空:

var numberField = $('input[type=number]');
var x = '';

$.each(numberField, function () {
    if ($.trim($(this).val()) === "") {
        x = Math.floor((Math.random() * 10) + 1);
        ($(this).val(x));
    }
});

我认为问题在于:

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));
    };
});
更新小提琴
我认为问题在于:

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));
    };
});
更新小提琴

您只能匹配没有值的字段,如下所示:

var numberField = $('input[type=number]');
var x = '';

    $.each(numberField, function () {
       if ($(this).val() === "") {
          x = Math.floor((Math.random() * 10) + 1);
          $(this).val(x);
        }
    });
$('input[type=number][value=""]').each(function () {
        this.value=Math.floor((Math.random() * 10) + 1);
});

以下是。

您只能匹配没有值的字段,如下所示:

var numberField = $('input[type=number]');
var x = '';

    $.each(numberField, function () {
       if ($(this).val() === "") {
          x = Math.floor((Math.random() * 10) + 1);
          $(this).val(x);
        }
    });
$('input[type=number][value=""]').each(function () {
        this.value=Math.floor((Math.random() * 10) + 1);
});
这是我的建议