【问题标题】:How to change value of input on click?如何更改点击时输入的值?
【发布时间】:2012-02-08 16:22:25
【问题描述】:

我通过 ajax 加载内容,如果单击它们,我想更改每个复选框的值。我试试

function calculate(){
    if($('input[type=checkbox][checked]')) {
        $(this).attr({ 
            value: 1
        });
    } else {
        $(this).attr({ 
            value: 0
        });
    }
    calculatebbb();
}

并添加到每个输入:

<input type="checkbox" name="a003" value="230073" onclick="calculate()">

但它不检查这个元素,它检查了所有元素。

【问题讨论】:

    标签: jquery checkbox


    【解决方案1】:

    随心所欲

    HTML

    <input type="checkbox" name="a003" value="230073" onclick="calculate(this);">
    

    Javascript

    function calculate(checkbox){
        console.log($(checkbox));
        if($(checkbox).attr("checked")) {
            $(checkbox).val(1);
        } else {
            $(checkbox).val(0);
        }
        calculatebbb();
    }
    

    演示 http://jsfiddle.net/2hy4h/

    你做错了什么:

    this 不是您的输入。如果您与console.log(this)联系。

    另外input[type=checkbox][checked] 不会选择您的输入,可能在此处使用 id。

    您可以使用.val(1) 设置值

    【讨论】:

      【解决方案2】:

      尝试排序一个

      if($('input[type=checkbox]')bind('click', function(){  
      
          $(this).attr('checked', !$(this).attr('checked')); 
      
      });
      

      【讨论】:

        【解决方案3】:

        试试这个:

        ...ajax call...
        success: function(data) {
        ... append Your input elements to #myDiv ...
            $('#myDiv input').bind('click', function(){
                var that = $(this);
                if( that.is(':checked') ) {
                    that.val(1)
                    } else {
                that.val(0)
                }
                calculatebbb();
            });
        },
        ...
        

        【讨论】:

        • 但是,如果我通过 ajax 加载输入元素并且只需要在某些 div 中的输入应用这个点击函数,我可以把这个函数放在哪里? (并非在所有文件中)
        【解决方案4】:

        而不是

        $(this).attr({ 
          value: 1
        });
        

        试试

        $(this).val(1);
        

        // EDIT:另一个错误是您在函数calculate 中使用了this。这里this 指的是函数——而不是输入。你应该使用这样的 jQuery:

        $(document).ready(function() {
          $('input').click(function() {
            // do your things with this
          });
        });
        

        而不是在 HTML 中定义点击处理程序。

        【讨论】:

          【解决方案5】:

          在这种情况下 应该是这样的。 $(this).val('你想放的值');

          如果你不想使用 jquery document.getElementById('id').value = xxx; 但在这种情况下,你需要把 id 放在你的 html 元素中。

          【讨论】:

            【解决方案6】:

            将您的代码更改为:

            function calculate(obj) {
                obj.value = obj.checked + 0;
                calculatebbb();
            }
            

            还有 HTML:

            <input type="checkbox" name="a003" value="230073" onclick="calculate(this)">
            

            所以如果选中的值将变为 1,如果未选中则为 0。

            【讨论】:

              猜你喜欢
              • 2015-08-15
              • 2023-04-03
              • 1970-01-01
              • 2021-11-25
              • 2012-07-23
              • 2018-05-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多