javascript - jQuery 单选按钮更改

标签 javascript jquery twitter-bootstrap

因此,我在此处和其他地方查看了如何在单击单选按钮时使用 jQuery 执行函数。我可以使示例代码独立工作,就像在 CodePen 中一样,但在集成到我的项目中时它将无法工作。

我没有使用直接的单选按钮,而是使用 Bootstrap 化的按钮。表单的相关部分最终看起来像这样:

<div class="btn-group" data-toggle="buttons" role="group" id="floors-div">
    <label class="btn btn-default" name="floors-label">
        <input type="radio" name="floors" id="1" value="1" autocomplete="off">1</label>
    <label class="btn btn-default" name="floors-label">
        <input type="radio" name="floors" id="2" value="2" autocomplete="off">2</label>
    <label class="btn btn-default" name="floors-label">
        <input type="radio" name="floors" id="3" value="3" autocomplete="off">3</label>
    <label class="btn btn-default" name="floors-label">
        <input type="radio" name="floors" id="4" value="4" autocomplete="off">4</label>
</div>

当单击按钮时,我可以通过以下方式执行操作:

$("input[name='floors']").parent().click(function() {
...snip...
var buttonVal = $("input[type='radio'][name='floors']:checked").val();

但是这个值是错误的。它返回先前选择的按钮的值,而不是当前按钮的值。如果我只是做类似的事情:

$("input[name='floors']").change(function() {
...snip...

单击按钮后没有任何反应。

有什么建议吗?

编辑:在您的帮助下,我已经缩小了问题的范围。事实证明,我所做的 CodePen 和生产环境之间的主要区别在于包含了 Bootstrap 的 JS。显然他们正在重写一些与 .change 方法混淆的东西。问题在 CodePen here 中重现.

编辑2:如果重要的话,我的所有 JS 也都在 $(document).ready(function(){ 内。

最佳答案

尝试使用event delegation这样.

 $("#floors-div").on("change", "input[name='floors']", function () {
        //code snippets
 });

或者

$(document).on("change", "input[name='floors']", function () {
        //code snippets
 });

关于javascript - jQuery 单选按钮更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31933831/

相关文章:

Javascript mouseup 事件在 Bootstrap 中带有切换按钮 - 该事件触发得太早

JQuery SimpleModal 在带有 Safari 的窗口中关闭时崩溃

javascript - 如何获取输入文本的宽度(不是输入框)

css - "-"在haml中是什么意思?

javascript - 没有动画,Canvas 中无限循环

javascript - 如何在nestjs中访问@ResolveField中的@Args()

javascript - jquery div 内容没有改变

javascript - 使用 jquery 完成后 Bootstrap select 不起作用

twitter-bootstrap - 游戏框架中的 Bootstrap 字形图标

javascript - Rails 应用程序中搜索框的自动过滤