JQuery/Javascript 在点击时不触发
JQuery/Javascript on click not firing
本文关键字:Javascript JQuery 更新时间:2023-09-26
有人可以向我解释为什么我的javascript不起作用吗?我正在尝试在我的网站上设置隐藏字段的值。该脚本已工作,但由于 som 原因它不再工作。
这是 JavaScript
<script>
$('#checkDk').on('change', function () {
$('#MainContent_hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#MainContent_hiddenTargetDk").val());
});
</script>
这是按钮。
<label runat="server" id="dk" class="btn btn-default">
<input runat="server" id="checkDk" type="checkbox" value="208" onselect="getvalue()" autocomplete="off">
Denmark
</label>
这是隐藏的领域:
<input type="hidden" id="hiddenTargetDk" runat="server" />
$(#hiddenTargetDk)
不$(#MainContent_hiddenTargetDk)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<input type="hidden" id="hiddenTargetDk" runat="server" />
<label runat="server" id="dk" class="btn btn-default">
<input runat="server" id="checkDk" type="checkbox" value="208" onselect="getvalue()" autocomplete="off">
Denmark
</label>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
$('#checkDk').on('change', function () {
$('#hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#hiddenTargetDk").val());
});
</script>
</body>
</html>
您必须
使用其id
将值设置为隐藏的input
,这#hiddenTargetDk
不是#MainContent_hiddenTargetDk
演示
j查询:
$('#checkDk').on('change', function () {
$('#hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#hiddenTargetDk").val());
});
您正在绑定changed
事件并在click
上等待它。我确实认为这不是它应该的工作方式。
试试这个:
$('#checkDk').on('click', function () {
$('#MainContent_hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#MainContent_hiddenTargetDk").val());
});
你的问题是其他答案的组合,以及一个秘密的后端怪癖与 ASP.NET。
ASP.NET 正在更改隐藏字段的 ID。 您需要将 ClientIDMode="Static" 属性添加到要使用 JQuery 的字段中,如下所示:
<label runat="server" id="dk" class="btn btn-default">
<input runat="server" id="checkDk" type="checkbox" value="208" onselect="getvalue()" autocomplete="off" clientidmode="static">
Denmark
</label>
<input type="hidden" id="hiddenTargetDk" runat="server" clientidmode="static" />
然后,您可以使用 JQuery 简单地识别您的对象:
$('#checkDK')
和
$('#hiddenTargetDK')
我想我会这样写 JQuery:
<script>
$('#checkDk').click(function () {
$('#hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#hiddenTargetDk").val());
});
</script>
此功能已添加到 .NET 4.0 中,我相信之后。 .NET 框架使用 runat="server" 属性重命名所有对象的 ID,IIS、IIS Express 和每个不同版本的 IIS 配置可能会以不同的方式重命名它们,这就是您的代码中断的原因。 将客户端 ID 模式设置为静态可确保 ASP.NET 不会重命名您的 ID,而是使用另一个字段来保存其"真实名称"。 祝你好运!
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- Javascript(jQuery)给了我奇怪的结果
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- Javascript/jQuery中的并行Ajax调用
- 我可以在Javascript/jQuery中使用一个变量作为键吗
- Javascript/Jquery/PHP加载页面-如何
- Javascript/Jquery Blob not showing Chrome PDF
- 如何使用javascript/jquery获取iframe的URL的锚点属性
- OnClick/Onhover Javascript/jquery
- 如何从javascript/jquery中的复选框中获取布尔值
- javascript/jquery将utc转换为短格式的本地时间
- 在不设置协议的情况下,使用javascript/jquery更改iframe-src
- 如何向这个javascript/jquery函数添加参数
- 用JavaScript/jQuery点击图片,选中多个方框
- 使用Javascript/JQuery获取JSON GET数据
- 从数组中删除元素的最佳方法是:javascript/jquery
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 用DRY方式Javascript/JQuery动态替换HTML
- 类似Javascript JQuery的库
- 如何在 Javascript/jQuery 中获取一些随机下拉列表的选定值