单击不触发JQuery/Javascript
有人能解释一下为什么我的javascript不工作吗。我正在尝试在我的站点上设置隐藏字段的值。脚本已经工作了,但出于某些原因,它不再工作了。单击不触发JQuery/Javascript,javascript,jquery,Javascript,Jquery,有人能解释一下为什么我的javascript不工作吗。我正在尝试在我的站点上设置隐藏字段的值。脚本已经工作了,但出于某些原因,它不再工作了。 下面是javascript <script> $('#checkDk').on('change', function () { $('#MainContent_hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : ""); conso
下面是javascript
<script>
$('#checkDk').on('change', function () {
$('#MainContent_hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#MainContent_hiddenTargetDk").val());
});
</script>
$('#checkDk')。on('change',function(){
$('#MainContent_hiddenTargetDk').val($(this.prop(“checked”)?$(this.val():);
log($(“#MainContent_hiddenTargetDk”).val());
});
这是按钮
<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" />
您正在绑定到一个
已更改的
事件,并在单击中等待它。我确实认为这不是应该的工作方式
请尝试以下方法:
$('#checkDk').on('click', function () {
$('#MainContent_hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#MainContent_hiddenTargetDk").val());
});
$(#hiddenTargetDk)
非$(#main content_hiddenTargetDk)
无标题文件
丹麦
$('#checkDk')。on('change',function(){
$('#hiddenTargetDk').val($(this.prop(“选中”)?$(this.val():“”);
console.log($(“#hiddenTargetDk”).val();
});
您必须使用其id
将值设置为输入
隐藏,该id为#hiddenTargetDk
非#MainContent\u hiddenTargetDk
jQuery:
$('#checkDk').on('change', function () {
$('#hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#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:
<script>
$('#checkDk').click(function () {
$('#hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#hiddenTargetDk").val());
});
</script>
$('#checkDk')。单击(函数(){
$('#hiddenTargetDk').val($(this.prop(“选中”)?$(this.val():“”);
console.log($(“#hiddenTargetDk”).val();
});
我相信这项功能是在.NET4.0和之后添加的。NET framework使用runat=“server”属性重命名所有对象的ID,IIS、IIS Express和IIS的每个不同版本/配置可能会以不同方式重命名它们,这就是代码中断的原因。将客户端ID模式设置为静态可确保ASP.NET不会重命名您的ID,而是使用另一个字段保存其“真实名称”。祝你好运 谁否决了我?——————我保证这是正确的答案。我认出了ASP.NET语法,他原来的创可贴,为什么它坏了,以及如何正确地修复它。对,好吧,选民,我很想知道为什么我的答案是错误的。这是一个简单的身份不匹配。可以安全地假设你有一个议程。除非你有5个多账户,你甚至不能一次拿2分让我慢下来,算算吧。
$('#hiddenTargetDK')
<script>
$('#checkDk').click(function () {
$('#hiddenTargetDk').val($(this).prop("checked") ? $(this).val() : "");
console.log($("#hiddenTargetDk").val());
});
</script>