jQuery - if语句排除某些输入

时间:2012-10-02 22:23:40

标签: jquery if-statement

我的if语句有问题,但我无法正确使用代码。

我在包含表单元素的页面上有多个divs。我有一个重置按钮,可以通过.val(" ")清除所有输入字段,但我需要以某种方式排除input[type=button]

我不太了解if语句和格式在某处肯定是错误的。

<!-- Reset only current div -->
$('.reset_form').live('click', function() {
    $(this).parents("div.menu_creation_form").find("input").val('');
    if () {
        $(this).parents("div.menu_creation_form").find("input[type=button]").val();
    }
    else() {
        // do nothing
    }
});​

3 个答案:

答案 0 :(得分:1)

您只能使用相同类型的attribute selector选择文字输入:

$(this).parents("div.menu_creation_form").find("input[type=text]").val('');

但是,如果您未明确将type属性设置为text,则无法使用此功能。如果保留type属性,将使用默认值并将呈现文本框,但此选择将无法找到它。要解决此问题,您可以使用:text选择器:

$(this).parents("div.menu_creation_form").find("input:text").val('');

我认为后一种方法有点慢。

答案 1 :(得分:1)

首先你不需要if-else ..试试这个

  $(this).parents("div.menu_creation_form").find("input:not([type=button])").val('');

答案 2 :(得分:1)

HTML:

<div class="menu_creation_form">
    <input type="button" value="Clear" class="reset_form" />
    <input type="text" value="Jim" />
</div>

jQuery的:

​$('.reset_form').click(function() {
    $('input').not('[type="button"]').val('');
});​​​​​​​​​​​​​

小提琴:http://jsfiddle.net/gromer/kuu26/1/

关键是使用.not。根本不需要if