【问题标题】:jQuery - Get value of specific checkbox using iButtonjQuery - 使用 iButton 获取特定复选框的值
【发布时间】:2014-08-05 22:11:32
【问题描述】:
<form id="blabla" method="post">
<input type="checkbox" name="test" id="iButton" value="1" class="button" />
</form>

<form id="blabla" method="post">
<input type="checkbox" name="test" id="iButton" value="1" class="button" />
</form>

$(document).ready(function (){
      $(":checkbox").iButton({
            change: function() {
                var sendData = $("input", this).val();
                var dataString = "cmd="+sendData;
                $.ajax(
                {type:"POST",
                url: "http://meinserver.com",
                data: dataString,
                success: alert(dataString)}
                );
                return false;
            }
      });
    });

谁能解释我如何获得发送的复选框的值?如果我使用 $("input", this).val() var 是未定义的,如果我使用 $("input").val() 我只会得到第一个复选框的值。

我使用了来自here 的示例代码,但这会返回一个包含所有选中复选框的数组。我只想更改特定的复选框。提前谢谢。

【问题讨论】:

  • 你试过$(this).val()吗?
  • 您也不应该拥有超过 1 个具有相同 id 的元素
  • 我做了,但这不会有任何反应......

标签: javascript jquery checkbox


【解决方案1】:

我正在使用我不想错过的iButton jQuery Plug-in v1.0.03 :) 我想确实没有必要将 id 放入要转换为 iButton 的复选框的输入标记中。它在没有我的脚本的情况下工作。

这是我找到的解决问题的方法。

<form id="myform" method="post">
<input type="checkbox" name="mykey" value="myvalue" id="iButton"/>
</form>

<form id="myform" method="post">
<input type="checkbox" name="mykey" value="myvalue" class="button"/>
</form>

<script type="text/javascript">
    $(document).ready(function (){
      $(":checkbox").iButton({
            change: function($input) {
                var sendData = $($input).val();
                var dataString = "cmd="+sendData;
                $.ajax(
                {type:"POST",
                url: "http://meinserver.com",
                data: dataString,
                success: alert(dataString)}
                );
                return false;
            }
      });
    });
</script>

【讨论】:

    【解决方案2】:

    这是您的代码稍作修改的版本。我将每个元素更改为具有唯一 ID 并取出 ajax 调用。请注意,我还为传递给名为 event 的 change 方法的函数添加了一个参数,这可能是获取已更改复选框的最简单方法。 -> event.target

    <!DOCTYPE html>
    <html>
        <head>
        </head>
        <body>
    <form id="blabla1" method="post">
    <input type="checkbox" name="test" id="iButton1" value="1" class="button" />
    </form>
    
    <form id="blabla2" method="post">
    <input type="checkbox" name="test" id="iButton2" value="1" class="button" />
    </form>
    <script src="http://code.jquery.com/jquery-1.11.1.js"></script>
    <script>
    $(document).ready(function (){
        $(":checkbox").change(function(event){
            alert($(event.target).is(':checked'));
        });
    });
    </script>
        </body>
    </html>
    

    【讨论】:

    • 我必须评论我的帖子而不是你的帖子,因为我没有足够的 Rep 积分。我确实想念你在使用 iButton,老实说我以前没有听说过那个插件,所以我认为这正是你制作 id 的地方:)
    猜你喜欢
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 2012-07-02
    • 2019-07-11
    • 2012-12-20
    • 2013-06-07
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多