带有单选按钮的jQuery事件绑定问题

本文关键字:事件 绑定 问题 jQuery 单选按钮 | 更新日期: 2023-09-27 18:04:58

当文档加载到我的单选按钮时,我正试图让jQuery绑定一个onClick函数。

ASP返回数据库,找到所有打开的标记,然后用原始HTML向页面发送响应,以制作一个单选按钮和标记的图像。我需要做的是让jQuery(或任何类似的东西(绑定一个onClick,它会发出被点击的信号,这样我就可以将标记ID发送回数据库,将其附加到一个人身上。

这是我迄今为止所尝试的一个粗略的jsFiddle。在调试过程中,我在每个函数中添加了警报,我看到了3倍的警报,但attr('id')返回时未定义。

这是将单选按钮放在表单上的html

            <br />
            <p>Select open marker for new user:
            <% getMarkers(); %>
            </p>

这是呼叫的代码指针

        while (reader.Read())
        {
            if (readIndex % 3 == 0)
                markerTable += "<tr>";
            string markerId = reader["marker_id"].ToString();
            string fileName = reader["marker_filename"].ToString();
            markerTable += "<td><input type='"radio'" name='"openMarker'" value='"" + markerId + "'" " +
                "id='"oMrk" + markerId + "'"><label for='"oMrk" + markerId + "'"><img src='"/Markers/" +
                fileName + "'" /></label></input></td>";
            readIndex++;
            if (readIndex % 3 == 0)
                markerTable += "</tr>";
        }
        if (readIndex % 3 != 0)
            markerTable += "</tr>";
        markerTable += "</table>";
    }
    else
        markerTable = "<p>No empty markers. Please delete a user to continue.</p>";
    
    sCon.Close();
    return markerTable;

我发布的fiddle有从这个函数粘贴到它的源代码。

我有两个问题。

  1. 为什么这不起作用?似乎应该这样,我从jQuery选择器语句中得到了3个元素,它是从$(document).ready()调用的,为什么属性没有定义
  2. 有更好的方法吗?我计划把这个值放在一个页面变量中,然后用ASP按钮把它发送回服务器,到一个存储过程中,把另一个字段的标记和一些文本添加回数据库。我意识到我可以将onClick事件添加到响应html中,但该死,我需要理解为什么我所做的不起作用

我对网络很陌生,所以如果我在程序上偏离了目标,我愿意接受建议。

带有单选按钮的jQuery事件绑定问题

链接
$(document).ready(function () {
    $('input:radio').each(function (radElem) {
        var radId = $(this).attr('id');
        alert(radId);
    });
     $('input:radio').on('click', function () {
            alert('Clicked');
        });
});
$(document).ready(function () {
    $('input:radio').on('click', function() {
        alert($(this).attr('id'));
    });
});

在页面上停留时,是否需要将值发送到服务器?(通过ajax(

或者您需要将表格张贴到另一个页面?

  1. 它不起作用,因为您正在尝试绑定onClick而不是仅click
  2. 其他答案为您提供了jQuery。在每个你只需要使用this关键字

我用小提琴测试了一下,它有效。其他人也提供了类似的答案,但无论如何,这是小提琴:fiddle

$(document).ready(function () {
    $("input:radio").each(function () {
        var radId = $(this).attr('id');
        alert(radId);
        $(this).on('click', function () {
            alert('Clicked');
        });
    });
});

至于如何更好地完成你想要完成的事情,我真的不太清楚你想要做什么,对不起。不过,感觉最初应该在asp.net中填充它,但页面的限制可能无法实现。我不能说。

另外,继续选择之前的一个答案,我只是想向你解释为什么你所拥有的不起作用。