使用jQuery检索Button值

Sim*_*ton 55 jquery

一个简单的,我正在尝试使用jQuery按下按钮时检索按钮的value属性,这就是我所拥有的:

<script type="text/javascript">
    $(document).ready(function() {
        $('.my_button').click(function() {
            alert($(this).val());
        });
    });
</script>

<button class="my_button" name="buttonName" value="buttonValue">
    Button Label</button>
Run Code Online (Sandbox Code Playgroud)

在Firefox中,我的警报显示"buttonValue",这很棒,但在IE7中显示"按钮标签".

我应该使用什么jQuery来获得按钮的价值?或者我应该使用不同的方法?

非常感谢.

答案:我现在正在使用

<input class="my_button" type="image" src="whatever.png" value="buttonValue" />
Run Code Online (Sandbox Code Playgroud)

Nei*_*ken 89

由于按钮值是一个属性,您需要在jquery中使用.attr()方法.这应该做到这一点

<script type="text/javascript">
    $(document).ready(function() {
        $('.my_button').click(function() {
            alert($(this).attr("value"));
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

您还可以使用attr设置属性,在文档中添加更多信息.

这仅适用于JQuery 1.6+.请参阅postpostmodern的旧版本答案.

  • 谢谢你,IE7仍然会返回'Button Label'. (3认同)
  • IE6和IE7(不是IE8)似乎表现出与<button>标签相关的错误.标签的内部文本会将value属性覆盖为几乎所有效果. (2认同)
  • 这不起作用。在 IE6/7 中使用 .val() 或 .attr('value') 返回同样不正确的东西 (2认同)

小智 41

我知道这是在不久前发布的,但万一有人正在寻找答案,并且真的想使用按钮元素而不是输入元素...

无法在IE中使用.attr('value').val()使用按钮.IE将.val()和.attr("value")报告为按钮元素的文本标签(内容),而不是value属性的实际值.

您可以通过暂时删除按钮的标签来解决它:

var getButtonValue = function($button) {
    var label = $button.text(); 
    $button.text('');
    var buttonValue = $button.val();
    $button.text(label);
    return buttonValue;
}
Run Code Online (Sandbox Code Playgroud)

IE中还有一些带按钮的怪癖.我已经在这里找到了两个最常见问题的修复程序.

  • jQuery 1.6+中的`.val()`函数有一个解决这个bug的方法,现在应该按照IE6/7的预期工作(参见[Ticket#1954](http://bugs.jquery.com/ticket/1954) ). (3认同)
  • 这个问题是'jquery按钮值ie7'的顶级谷歌搜索结果,正是我需要知道的和一个很好的解决方案.谢谢 (2认同)

Man*_*ola 16

Button没有值属性.要获取按钮的文本,请尝试:

$('.my_button').click(function() {
     alert($(this).html());
});
Run Code Online (Sandbox Code Playgroud)


小智 10

您还可以使用新的HTML5自定义数据属性.

<script type="text/javascript">
$(document).ready(function() {
    $('.my_button').click(function() {
        alert($(this).attr('data-value'));
    });
});
</script>

<button class="my_button" name="buttonName" data-value="buttonValue">Button Label</button>
Run Code Online (Sandbox Code Playgroud)


ste*_*ddy 7

给按钮一个值属性,然后使用以下方法检索值:

$("button").click(function(){
  var value=$(this).attr("value");
});
Run Code Online (Sandbox Code Playgroud)