【问题标题】:Jquery: Clear Specific form field on checkbox clickJquery:单击复选框清除特定表单字段
【发布时间】:2012-03-02 18:28:27
【问题描述】:

我试图在单击复选框时仅清除特定的 ID 输入字段。我在单击复选框时切换了两个字段集,我想从单击所有字段集中的复选框中清除特定的 ID 字段。

我得到了这个脚本,但它从我的表单中清除了所有内容,而这不是我要查找的内容,而只是特定的 ID 字段。

function clear_form_elements(ele) {

    $(ele).find(':input').each(function() {
        switch(this.type) {
            case 'text':
            case 'textarea':
                $(this).val('');
                break;              
                this.checked = false;
        }
    });

}

【问题讨论】:

  • 如果您知道 ID(或者可以从复选框上的某些属性中提取 ID)为什么不使用 $('#myField').val('');而不是循环?如果您想保留这种方法,请使用 $('input[type=text], textarea',elem) 将搜索限制为仅输入和 textareas
  • Nick 的方法是要走的路,有选择器甚至可以用于动态 ID,并且只需要编写一行代码来处理多个字段
  • 尼克你能给我一个例子吗?无法理解如何写你所说的。因为我甚至是 jquery 和 php 的新手。事实上,我已经尝试过一件事,它对我有用,但也想知道你的方法。如果会比想使用它更小更容易。

标签: jquery onclick field


【解决方案1】:

我不确定您的表单结构是什么样的,但如果您想清除文本、文本区域、复选框或按 id 选择值,您可以使用

$(ele).find('#id').val('');

假设:

1. the variable 'ele' represents the form jquery object. 
2. '#id' is the id of the field you want to remove the value for, and
3. that your javascript may be included on other pages that use the same '#id'

如果 '#id' 在您的网站中是唯一的,或者您的 javascript 是特定于页面的,那么 Nick 的方法就可以正常工作。

$('#id').val('');

【讨论】:

  • 您的解决方案不能完全运行,但我已经尝试并进行了一些修改,它运行良好。 $(ele).find('#id').val(''); 在您的代码中,它没有考虑任何输入字段,所以我写了 '$(ele).find('.clearform :input').each(function()` 它对我有用。但是我的表单结构是有点不同。其中 clearform 是一个由几个输入元素组成的 div 组,所以可能这也可能是原因事实上我也在寻找尼克的回复,如果他说代码可以很小,我也想看看。但是我正在寻找尼克关于他所说的话的回复。
猜你喜欢
  • 2014-12-16
  • 2011-09-15
  • 2018-06-11
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
相关资源
最近更新 更多