【问题标题】:JQuery: Toggle hidden field's value [closed]JQuery:切换隐藏字段的值
【发布时间】:2013-08-14 19:34:03
【问题描述】:

我一直在寻找如何做到这一点。在我的表单中,我想通过单击一个 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/

【问题讨论】:

标签: jquery


【解决方案1】:

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

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

Working Demo

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

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

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

【讨论】:

  • 似乎仍然无法正常工作。我在上面的编辑中包含了一个 jsfiddle
  • @Jon 我用一个新的演示更新了我的答案。小提琴有两个问题:一个是我有一个额外的 ( 字符,两个 jQuery 没有包含在小提琴中。
  • 我应该注意到这些。谢谢
  • 仍然不适合我,但由于它在 jsfiddle 中运行良好,我假设我的代码中发生了一些事情。再次感谢
  • @Jon 仔细检查你的选择器并确保你用$(function (){...}包装你的jQuery代码
【解决方案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";
    }
};

【讨论】:

  • 对我不起作用。我在编辑中包含了一个 jsfiddle
【解决方案3】:

你尝试的jQuery代码有错误,'click'之前不应该有右括号

【讨论】:

    猜你喜欢
    • 2011-03-12
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 2014-07-12
    • 1970-01-01
    相关资源
    最近更新 更多