带有单选按钮的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有从这个函数粘贴到它的源代码。
我有两个问题。
- 为什么这不起作用?似乎应该这样,我从jQuery选择器语句中得到了3个元素,它是从
$(document).ready()
调用的,为什么属性没有定义 - 有更好的方法吗?我计划把这个值放在一个页面变量中,然后用ASP按钮把它发送回服务器,到一个存储过程中,把另一个字段的标记和一些文本添加回数据库。我意识到我可以将onClick事件添加到响应html中,但该死,我需要理解为什么我所做的不起作用
我对网络很陌生,所以如果我在程序上偏离了目标,我愿意接受建议。
$(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(
或者您需要将表格张贴到另一个页面?
- 它不起作用,因为您正在尝试绑定
onClick
而不是仅click
- 其他答案为您提供了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中填充它,但页面的限制可能无法实现。我不能说。
另外,继续选择之前的一个答案,我只是想向你解释为什么你所拥有的不起作用。