表单验证 - 替换空白字段

时间:2013-05-30 06:52:12

标签: jquery forms validation

我有几个带表单元素的表 - 所有这些元素都作为单个表单提交并进行解析。我想添加一些验证,使用jQuery作为.submit()参数。

我在网上找到了一些代码,但是这些代码会产生错误消息,我想知道是否有人知道任何可以执行以下操作的示例代码:

On .submit()
if textBox1 = ""
    then replace empty textBox1 with "1"
else if textBox2 = ""
    then replace empty textBox2 with "-1"
and continue to submit the form

3 个答案:

答案 0 :(得分:1)

var textBoxDefaultValues = {
    textBox1 : '1',
    textBox2 : '-1' 
};

$(formSelector).on('submit', function () {
    $(this).find('input[type="text"]').each(function() {
        if($(this).val() == '') {
            $(this).val(textBoxDefaultValues[$(this).attr('name')]);
        }
    });
    return true;
});

答案 1 :(得分:1)

这是另一种解决方案:

$("#myForm").submit(function() {
  if $(this).find("input[type='text']").each(function() {
    if $(this).val() == "") $(this).val("1");
    if $(this).val() == "..") $(this).val("-1");
  });
});

此解决方案可能更直接/更易于理解。如果你有很多输入,Taber的解决方案可能会更合适。

答案 2 :(得分:1)

您的伪代码准确翻译:

$("form").submit(function() {
    if ($('input[name="textBox1"]').val() == "") {
        $('input[name="textBox1"]').val("1");
    } elseif ($('input[name="textBox2"]') == "") {
        $('input[name="textBox2"]').val("-1");
    }
});

编辑:

如果出于某种原因需要在多个输入中复制name属性,则可以使用id属性来定位输入:

// HTML form
<input type="text" name="textBox1" id="foo" />
<input type="text" name="textBox1" id="bar" />

// Javascript
$("form").submit(function() {
    if ($('input[id="foo"]').val() == "") {
        $('input[id="foo"]').val("1");
    } elseif ($('input[id="bar"]') == "") {
        $('input[id="bar"]').val("-1");
    }
});