jQuery 选择器仅选择第一个元素

标签 jquery input css-selectors

我有一个关于使用 jquery 的小问题。 我有以下代码:

<html> 
<head>

    <script src="jquery/jquery.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
      $("form").submit(function(){
       if(!$(':text').val()){
        $("span").text("sdfgsd").show();

        };return false;
      })
      });
    </script>
</head>
<body>
    <form action=""  id="ff" >
       <span></span>
        <input type="text" name="test" /> <br />
        <input type="text" name="test3" /> <br />
        <input type="checkbox" name="test2" /> <br />
        <input type="submit" value="push it" />
    </form>

</body>

问题是选择器仅针对第一个文本框激活。如果您在第一个文本框中输入值,则不会激活触发器。 :text 或 :input 都无法正常工作。

有人有什么想法吗?

提前致谢, 丹尼斯

最佳答案

匹配多个元素的 jQuery 选择器上的 val() 函数返回第一个匹配元素的值。您需要循环遍历所有元素并检查每个元素的值。

$(document).ready(function(){
  $("form").submit(function(){
     var inputsHaveValues = true;
     $(':text').each( function() {
         if (!$(this).val()) {
            inputsHaveValues = false;
            break;
         }
     });

     if (!inputsHaveValues) {
         $("span").text("sdfgsd").show();
         return false;
     }
  })
});

关于jQuery 选择器仅选择第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5370887/

相关文章:

jquery - 使用 jQuery Mobile 1.4.4

javascript - 在我页面的特定部分调用 <link rel =“stylesheet” href =“” > 而不覆盖我当前的 CSS 样式

java - 字符串输入不会打印空格?

html - CSS下拉菜单: What is the fastest selector?

jquery - 以页面为中心对齐内容

php - 检测/读取按键,跨平台 PHP CLI

javascript - 以表格格式显示输入字段中的数据

CSS form[action] 不适用于查询字符串

html - 为第一个表格行创建 CSS,交替其他行

javascript - 如何防止单击在 jQuery 中触发多个单击处理程序调用