我目前正在通过JavaScript设置一个文本框值。但当我试图获得这个价值时。
$("#idField").val(), i get null value.
我应该如何获得这些文本框值?
我想做的就是这样。
确保#idField存在(唯一ID)
.val()只适用于input/select/textarea元素,如果您希望text只使用.text(),如果您想要html只使用.html();
<script type="text/javascript" charset="utf-8">
jQuery(document).ready(function($){
var user_name = $('#user_name').val();
alert(user_name);
});
</script>
<label for="user_name">Label</label>
<input type="text" name="user[name]" value="User name" id="user_name">
-
请确保正确包含jQuery库。
-
在为
textfield
值赋值之后,而不是在赋值之前,请确认您正在尝试访问该值。 -
确保您的
ID
是唯一的 -
要将值设置为
textfield
,语法为:$("#idField").val('some value')
。 -
设置后,您可以获得值。
-
如果您试图使用任何
variable
分配值,请检查variable
是否有某个值,或者它是null
。使用变量设置值:var myVar = 'some value'; $("#idField").val( myVar );
-
尝试使用firebug之类的调试器来捕捉错误(如果你运气不好的话)
不带参数的.val()
在调用函数时获取字段的值,但如果您的"#idField"元素还没有解析,那么$("#idField")
将找不到它,然后.val()
将是undefined
。这就是为什么您需要在文档就绪处理程序或正文末尾的脚本块中运行操作DOM的脚本。
在你的fiddle的情况下,你真的不清楚你想做什么,但你正在声明和初始化你的field_one_val
变量:
var field_one_val = $("#field_one").val();
在页面加载时,此时字段实际上为空,因此field_one_val
最终为空字符串。
然后在您的点击处理程序中使用该变量:
$("#field_two").val('val '+field_one_val +' added to this field');
但它仍然是一个空字符串。
如果您要做的是点击第二个字段,则此时获取第一个字段的值,然后执行以下操作:
$("#field_two").val('val ' + $("#field_one").val() + ' added to this field');
如此更新演示所示:http://jsfiddle.net/g3vng/2/