我一直在尝试使用jQuery在表单中设置隐藏字段的值,但没有成功。
下面是解释该问题的示例代码。如果我保持输入类型为“文本”,它工作起来没有任何麻烦。但是,将输入类型更改为“hidden”,却不起作用!
<html>
<head>
<script type="text/javascript" src="jquery.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$("button").click(function() {
$("input:text#texens").val("tinkumaster");
});
});
</script>
</head>
<body>
<p>
Name:
<input type="hidden" id="texens" name="user" value="texens" />
</p>
<button>
Change value for the text field
</button>
</body>
</html>
我还尝试了以下解决方法,通过设置输入类型为“text”,然后为输入框使用“display:none”样式。但是,这也失败了!
jQuery似乎在设置隐藏或不可见的输入字段时遇到了一些麻烦。
什么好主意吗?有没有可行的解决办法?
使用val()不适合我。我必须在任何地方使用.attr()。此外,我有不同类型的输入,在复选框和选择菜单的情况下必须非常明确。
更新文本框
$('#model_name').attr('value',nameVal);
更新文件输入旁边的图像
$('#img-avatar').attr('src', avatarThumbUrl);
更新布尔
if (isActive) {
$('#model_active').attr('checked',"checked");
} else {
$('#model_active').attr('checked', null) ;
}
更新选择(包含数字或字符串)
$('#model_framerate').children().each(function(i, el){
var v = $(el).val();
if (v === String(framerateVal)) {
$(el).attr('selected','selected');
} else {
$(el).attr('selected',null);
}
}
我也有同样的问题。奇怪的是谷歌铬和可能其他人(不确定)不喜欢
$("#thing").val(0);
input type="hidden" id="thing" name="thing" value="1" />
(没有变化)
$("#thing").val("0");
input type="hidden" id="thing" name="thing" value="1" />
(没有变化)
但这是可行的!!!!
$("#thing").val("no");
input type="hidden" id="thing" name="thing" value="no" />
改变! !
$("#thing").val("yes");
input type="hidden" id="thing" name="thing" value="yes" />
改变! !
一定是“字符串的东西”
使用val()不适合我。我必须在任何地方使用.attr()。此外,我有不同类型的输入,在复选框和选择菜单的情况下必须非常明确。
更新文本框
$('#model_name').attr('value',nameVal);
更新文件输入旁边的图像
$('#img-avatar').attr('src', avatarThumbUrl);
更新布尔
if (isActive) {
$('#model_active').attr('checked',"checked");
} else {
$('#model_active').attr('checked', null) ;
}
更新选择(包含数字或字符串)
$('#model_framerate').children().each(function(i, el){
var v = $(el).val();
if (v === String(framerateVal)) {
$(el).attr('selected','selected');
} else {
$(el).attr('selected',null);
}
}