使用jQuery

时间:2019-01-17 20:48:48

标签: javascript jquery forms

我希望某些表单字段互斥。这是具有许多不同类别的付款表单。 研究中我得到了下面的代码

$('document').ready( function() {
    $("#zero-out :input").each( function() {
        $(this).keydown( function() {
            $("#zero-out :input").not(this).val("");
        });
    });
});

此代码假定我只可以将ID为零的div包装在我要排他的字段上-也就是说,对于那些分组的字段,只能有一个值。但是我有大约4个不同的领域组。例如,一组具有textfield和textfield3。另一个组具有textfield2,textfield4和textfield7。另一个组具有textfield5,textfield6和textfield8。这些字段不是按顺序排列的(它们按两列排列,并按某种方便顺序排列),因此仅将div包裹在一组周围并不容易。 每个文本字段都已经具有一个onkeyup="javascript:PaySum()函数来添加输入值。

我需要帮助,以一种优雅的方式实现这一目标。

1 个答案:

答案 0 :(得分:0)

我将为互斥输入的每个分组赋予一些属性(例如data-grouping = 1,data-grouping = 2等),然后将上面的代码更新为类似的内容:

$('document').ready( function() {
  $("input").each( function() {
    $(this).keydown( function() {
      $("input").not("[data-grouping='" + this.data("grouping") + "']").val("");
    });
  });
});

根据页面的大小和使用情况,blur可能比按下key键更好,并且您可以进一步将输入限制为仅特定父级中的输入。