![](/img/trans.png)
[英]ASP.NET MVC 4: Changing the Value of a Hidden field in Javascript
[英]Changing value of my hidden field with Javascript
我很难理解这段代码,因为我是Javascript / HTML / C#Razor的新手,
目前我有以下
<li class="control-group">
<label for="autoReload" class="control-label">Auto Reload</label>
<div class="controls">
<div class="btn-group radioButtons radioToggleCollapse" data-toggle-id="#autoReloadExtra" data-toggle="buttons-radio">
<button type="button" data-value="no" class="btn active">No</button>
<button type="button" data-value="yes" class="btn">Yes</button>
</div>
<input type="hidden" class="radioHidden" value="'$'+@(Model.IsAutoReload ? "True" : "False")" id="autoReload" name="IsAutoReload">
</div>
</li>
我要做的是单击“否”按钮,将文本框中的值更改为“ False”,或者如果单击“ true”,则希望将该值更改为“ true”
我发现以下Javascript,
<script>
$(document).ready(function(){
$("#autoReload").on('change',function(){
if ($(this).val() == 'yes') {
$(".saveCardSwitch button[data-value='true']").trigger('click');
$(".saveCardSwitch button").each(function(){
$(this).addClass('disabled').prop('disabled',true);
});
}
if ($(this).val() == 'no') {
$(".saveCardSwitch button").each(function(){
$(this).removeClass('disabled').prop('disabled',false);
});
}
});
});
</script>
现在,我已经尝试将按钮上的实际数据值切换为true / false,但是当我这样做时,我打开的隐藏消息不再显示了,因此我有点停滞不前。 我还要澄清一下,当我调用@(Model.IsReload?“ True”:“ False”时,它将值通过post方法传递回我的控制器,对吗?
使用Jquery时,可以通过以下方式进行:
$('.btn').click(function(){
$('.radioHidden').val($(this).attr('data-value') === 'yes');
});
据我了解,您所需要的只是一个为特定元素设置值的函数。 您可以使用以下代码进行操作
<li class="control-group">
<label for="autoReload" class="control-label">Auto Reload</label>
<div class="controls">
<div class="btn-group radioButtons radioToggleCollapse" data-toggle-id="#autoReloadExtra" data-toggle="buttons-radio">
<button type="button" data-value="no" onclick="setValue(false, 'autoReload');" class="btn active">No</button>
<button type="button" data-value="yes" onclick="setValue(true, 'autoReload');" class="btn">Yes</button>
</div>
<input type="hidden" class="radioHidden" value="" id="autoReload" name="IsAutoReload">
</div>
并且您的函数setValue可以类似于:
var setValue = function(value, id)
{
var domEl = document.getElementById(id);
domEl.value = value;
}
您似乎没有任何事件要绑定到要用于切换的按钮,这是您需要的第一件事,可以通过onclick事件来执行此操作
<button type="button" data-value="no" onclick="updateHidden(this.dataset.value)" class="btn active">No</button>
<button type="button" data-value="yes" onclick="updateHidden(this.dataset.value)" class="btn">Yes</button>
那么更新隐藏输入的代码是
function updateHidden(value){
value = value==="yes"?"TRUE":"FALSE";
document.getElementById("autoReload").value = value;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.