8

我一直在寻找如何做到这一点。在我的表单中,我想通过单击一个 div 来回切换一个值(true <-> false)。

如何使用 jquery 切换隐藏字段的真/假值?


<input id="myHiddenField" name="my[hidden_field]" type="hidden" value="false">

<a id="myDiv">Click Me</a>

我试过了

$('#myDiv').on('click'), (function() {
    var hiddenField = $('#myHiddenField'),
        val = hiddenField.val();

    hiddenField.val(val === "true" ? "false" : "true");
});

但什么都没有:(

jsfiddle:http: //jsfiddle.net/MV3A4/2/

4

3 回答 3

22

这很简单。将点击处理程序添加到您的 div,并使用 val() 方法更新您的输入值。

你还没有发布你的标记,所以我使用了一些占位符 ID。您需要将它们更新为在您的上下文中工作的选择器:

工作演示

$('#myDiv').on('click', function() {
    var hiddenField = $('#myHiddenField'),
        val = hiddenField.val();

    hiddenField.val(val === "true" ? "false" : "true");
});

请注意,输入值始终是字符串,因此它们不是真正的布尔值。

于 2013-08-14T19:36:14.847 回答
2

仅使用 javascript:

document.getElementById('myClickableDiv').addEventListener('click',function(){
    var value =document.getElementById('myHiddenField').value();
    if(value === "true"){
        document.getElementById('myHiddenField').value = "false";
    }else{
        document.getElementById('myHiddenField').value = "true";
    }
};
于 2013-08-14T19:43:09.433 回答
1

您尝试的 jQuery 代码有错误,“点击”之前不应该有右括号

于 2013-08-14T20:10:18.933 回答