停止表单中一个元素的更改功能

时间:2018-07-06 21:42:13

标签: jquery

因此,我具有此功能,如果表单中发生任何更改,它将通过“提交”按钮提交表单。 我想这样做,但是我想在表单中排除一个元素。它的ID为“ dogs”的复选框。如果用户检查了此内容,即使它处于表单形式,我也不希望它运行此功能。

$(document).ready(function(){
       $('#MainForm').change(function(){                
           $('#submit').click();
        });
    });

我尝试过了...

  $(document).ready(function(){
       $('#MainForm').not("#dogs").change(function(){               
           $('#submit').click();
        });
    });

虽然它不起作用,但是当我单击复选框时它仍然提交了表单,不确定在这里做什么。

2 个答案:

答案 0 :(得分:1)

$(document).ready(function(){
   $('#MainForm input').not("#dogs").change(function(){               
       $('#submit').click();
    });
});

您要检测输入的变化,然后忽略#dogs输入。您当前的版本检查#MainForm的更改(始终为真)。

答案 1 :(得分:0)

您似乎正在使用冒泡的更改事件来知道提交表单。如果要忽略一个元素,可以防止它冒泡。

$('#dogs').on('change', function(e){
    e.stopPropagation();
});

$('#MainForm').on('change', function(){
  console.log('submit the form!');
});

$('#dogs').on('change', function(e){
  e.stopPropagation();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="MainForm">
  <input type="checkbox" name="cats" id="cats">
  <input type="checkbox" name="dogs" id="dogs">
</form>