首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery验证只需选择

jquery验证只需选择
EN

Stack Overflow用户
提问于 2014-02-25 15:17:18
回答 3查看 84关注 0票数 1

如何简单地编写这个脚本。我几乎没有选择,我想使用简单的验证,一切都好,但我想让脚本更短。

我不想使用任何库来验证

代码语言:javascript
复制
$("#form").submit(function (e) {
 var tmp = $('#select-1').val();
 var tmp1 = $('#select-2').val();
 var tmp2 = $('#select-3').val();
 var error = $('#error-1');
 var error2 = $('#error-2');
 var error3 = $('#error-3');
 if (tmp == '0' || tmp == 'Select') {
  e.preventDefault();
  error.show();
} else {
  error.hide();
}
if (tmp1 == '0' || tmp1 == 'Select') {
  e.preventDefault();
  error2.show();
} else {
  error2.hide();
}
if (tmp2 == '0' || tmp2 == 'Select') {
 e.preventDefault();
 error3.show();
} else {
 error3.hide();
}
});
});

这是html代码

代码语言:javascript
复制
<form action="" id="form">
    <div>

        <label for="select-1">Value 1</label>
        <select id="select-1">
            <option value="0">Select</option>
            <option value="1">Select 1</option>
            <option value="2">Select 2</option>
            <option value="3">Select 3</option>
        </select>
        <i id="error-1" class="error">Error</i>
    </div>
     <div>

        <label for="select-2">Value 2</label>
        <select id="select-2">
            <option value="0">Select</option>
            <option value="1">Select 1</option>
            <option value="2">Select 2</option>
            <option value="3">Select 3</option>
        </select>
         <i  id="error-2" class="error">Error</i>
    </div>
     <div>

        <label for="select-3">Value 3</label>
        <select id="select-3">
            <option value="0">Select</option>
            <option value="1">Select 1</option>
            <option value="2">Select 2</option>
            <option value="3">Select 3</option>
        </select>
         <i  id="error-3" class="error">Error</i>
    </div>
    <div> <button type="submit" id="formsubmission">Submit</button></div>
</form>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-25 15:43:16

更一般的:

代码语言:javascript
复制
$(function() {
  $("#form").submit(function(e) {
    check(1, e);
    check(2, e);
    check(3, e);
  });
});

function check(id, e) {
  var tmp = $('#select-' + id).val();
  var error = $('#error-' + id);
  if (tmp == '0' || tmp == 'Select') {
    e.preventDefault();
    error.show();
  } else {
    error.hide();
  }
}

柱塞

您甚至可以将字符串传递到这个例程,如check('Price',e),以获得更易读的html-id= (id="select-Price“- id="error-Price")。此外,还可以通过为应该触发错误的值添加另一个参数来改进这一点。

票数 0
EN

Stack Overflow用户

发布于 2014-02-25 15:32:59

我想像这样的东西会有用的

代码语言:javascript
复制
$("select").each(function (index) {
    if ($(this).val() == '0' || 'Select') {
        e.preventDefault();
        $(this).next(".error").show();
     } else {
     $(this).next(".error").hide();
    }

});
票数 1
EN

Stack Overflow用户

发布于 2014-02-25 15:35:35

不要重复(干)。你基本上是做了三次同样的事。您可以使用$.each循环选择元素并在其中进行验证。

代码语言:javascript
复制
$("#form").submit(function (e) {
    $.each("select", function(i,el) {
        var val = $(el).val();  
        if(val == '0' || val == 'Select') {
            $("#error-"+i).show();
            e.preventDefault();
        }
        $("#error-"+i).hide();
    });
});

从27条线到10条线。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22018445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档