【问题标题】:Prevent submission of a field with the default value阻止提交具有默认值的字段
【发布时间】:2011-05-21 10:34:59
【问题描述】:

我在表单中使用 rails 3 UJS。

在其中一个字段中,我的默认值为“ABC”。

如果用户没有更改字段,我不希望提交此值。

1) 这是一个可选字段,所以我不想阻止表单提交

2) 我可以劫持 ":before" 动作,但这对我来说似乎很不自然

这似乎是一个常见的用例 - 最优雅的方法是什么?

【问题讨论】:

    标签: jquery html ruby-on-rails-3


    【解决方案1】:

    如果您只想支持支持 HTML5 的浏览器,可以使用 <input> 标记的 placeholder 属性,而不是设置您不想提交的值。

    <input type="text" placeholder="ABC" />
    

    请记住,IE9 不支持此属性 (source)。

    如果您不愿意,您可以使用表单的submit 事件来清除未更改的表单字段。

    $("#my-form").submit(function(event) {
        var input = $("#my-input-box");
        if (input.val() === "ABC") {
            input.val("");
        }
    });
    

    您可能会发现您的用户有时想在框中输入“ABC”。您可以通过在内容更改时设置标志并检查上述代码中是否设置标志来解决此问题,而不是将当前值与默认值进行比较。

    【讨论】:

    • 谢谢萨米尔!主要问题是我需要不断确保我的 html 和我的 js 是同步的,这总是会导致错误
    • 所以用占位符标记输入和一个类,然后只搜索那个类。然后对所有元素采取行动,而不仅仅是一个。
    猜你喜欢
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2011-10-22
    • 2015-08-18
    相关资源
    最近更新 更多