有人可以向我解释为什么我的javascript无效。我正在尝试设置我网站上隐藏字段的值。该剧本已经奏效,但由于其原因,它不再适用了。
这是javascript
(^|\W)@([A-Za-z]+\w*)(?=$|\W)
这是按钮。
<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>
答案 0 :(得分:1)
$(#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>
答案 1 :(得分:1)
您必须使用id
#hiddenTargetDk
而不是#MainContent_hiddenTargetDk
$('#checkDk').on('change', function () {
$('#hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#hiddenTargetDk").val());
});
将值设置为隐藏Accept-Language
<强> DEMO 强>
<强> jQuery的:强>
<div ngIf="messages">…</div>
答案 2 :(得分:-1)
您已绑定changed
事件,并在click
上等待它。我认为这不是它应该如何运作的。
请改为尝试:
$('#checkDk').on('click', function () {
$('#MainContent_hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#MainContent_hiddenTargetDk").val());
});
答案 3 :(得分:-1)
你的问题是其他答案的组合,以及ASP.NET的秘密后端怪癖。
ASP.NET正在更改隐藏字段的ID。您需要添加ClientIDMode =&#34;静态&#34;您想要像这样使用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 =&#34; server&#34;重命名所有对象的ID。它们上的属性,IIS,IIS Express以及IIS的每个不同版本/配置可能会以不同方式重命名它们,这就是您的代码损坏的原因。将客户端ID模式设置为静态可确保ASP.NET不重命名您的ID,而是使用另一个字段来保存它&#34;真名称&#34;。祝你好运!