防止在提交时发送特定输入

时间:2012-07-20 07:56:35

标签: javascript jquery forms

我有一个广播组选择用户要搜索的内容。使用JavaScript隐藏用户未搜索的输入。我如何阻止他们被提交?例如。如果选择了radio1,我不希望提交名为"search-by-date"的输入。除了删除name属性之外,有什么方法可以做到吗?如果删除name属性是唯一/最好的方法,那么正确的位置在哪里?

由于

3 个答案:

答案 0 :(得分:1)

我曾经为了不发送空值而制作的脚本,这可能会有所帮助,如果没有填写任何内容,它也会禁用该表单:

$("form").submit(function() {
  var count = $(this).find(':input').filter(function() {
    return $(this).val() != "";
  }).length;
  if (count > 0) {
    $(this).find(':input[value=""]').attr("disabled", "disabled");
    return true;
  } else {
    return false;
  }
});

答案 1 :(得分:1)

采用Gijs代码示例并使其更小:

$("form").submit(function() {
    var inputs = $(this).find(':input'),
        emptyInputs = inputs.filter('[value=""]');
    return inputs.length > emptyInputs.length && emptyInputs.prop("disabled", true).length > 0;
});

它检查所有输入是否为空然后返回false但是如果有输入有值且输入为空,则返回true并将空输入设置为禁用

答案 2 :(得分:1)

禁用该字段。

$('#your_form_id').submit(function(){
    if($("input:radio[name=radio1]").prop('checked')){
        $("input:radio[name=search-by-date]").prop('disabled',true);
    }
});