0

我在一个表单上有两个字段,它们都是在页面加载时具有相同值的输入框,一个是隐藏的。

当用户点击提交时,我想检查这些框,如果值没有不同,我想将可见框的值设置为“”(空字符串)。

这是我的代码(它正在迭代一组输入,但基础是我所描述的)

$(".edit_functional_area").submit(function() {        
    $(".value_shown").each(function(i, obj) {
        var hidden_obj = $(this).next();
        if (hidden_obj.val() == $(this).val() && $(this).val() != "") {
            alert($(this).val());

            $(this).val("");

            alert($(this).val());
        }
    });
});

从视觉上看,该字段实际上已被清空,但在服务器上,在我的控制器中(这是在 rails 应用程序中),参数通过时仍然设置了值。

我想要的是,该值在传入服务器的参数中为空白,因此我的模型在不需要时不会将值添加到数据库中。

有任何想法吗?

谢谢

4

1 回答 1

0

终于让这个工作了。

删除了隐藏字段,因为我创建它的方式导致了 html 中的 ID 冲突。相反,我在输入框中使用了数据属性来设置旧值并使用它在 jquery 中进行比较。

还必须更改更改元素值的命令以使用 attr(field, value) 而不是 val(value) 进行更改。

$(".edit_functional_area").submit(function(event) {
    $(".value_shown").each(function(i, obj) {
        var data = $(this).attr('data');
        if (parseFloat(data) == parseFloat($(this).val()) && $(this).val() != '') {
            $(this).attr('value', '');
        }
    });
});

感谢您的建议!最大限度

于 2012-07-31T18:54:27.083 回答