【问题标题】:jQuery set value only if emptyjQuery仅在为空时设置值
【发布时间】:2009-12-07 18:47:24
【问题描述】:

我正在使用模式为一系列文本框字段设置默认值。但是,如果不存在任何值,我只想将该字段设置为默认值。有没有办法用 jQuery 选择器做到这一点?

当前代码

var fooVal = $('#cboxLoadedContent').find('#SetFoo').val();
var barVal = $('#cboxLoadedContent').find('#SetBar').val();
$('.foo').val(fooVal);
$('.bar').val(barVal);

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:
    $(".foo[value='']").val(fooVal);
    

    编辑: 正如乔纳森所提到的,如果您为此使用的不仅仅是文本输入,那么您将需要更高级......尤其是选择标签,还有复选框、收音机和文本区域。

    【讨论】:

    • $('.foo[value=""]').val(fooVal); 在 IE 中有效,但在 Firefox 中无效,而 $(".foo[value='']").val(fooVal); 在两者中都有效。这是为什么呢?
    • 我不知道...我总是以后一种方式做,所以我以前从未注意到过。
    【解决方案2】:
    $("input.foo[type=text][value='']").val(fooVal);
    $("input.bar[type=text][value='']").val(barVal);
    

    如果您的类已用于其他类型的输入,则代码应类似于上述代码,以确保只有具有给定类的空文本框受代码影响。

    【讨论】:

    • 其实你可以使用 $(".foo:text[value='']").val(fooVal);各种表单控件和选中/选中都有特定的伪类选择器。
    【解决方案3】:

    您可以使用:text[value=''] 查找所有空文本字段。

    【讨论】:

    • 好点...这还不够强大,无法处理各种表单控件。
    猜你喜欢
    • 2012-03-10
    • 2016-02-29
    • 2018-01-15
    • 2022-12-13
    • 1970-01-01
    • 2022-01-11
    • 2019-09-29
    • 1970-01-01
    • 2019-04-27
    相关资源
    最近更新 更多