<input type='text' id='txt' name='txtName' size='20' value='testing'/>
<script type="text/javascript" language='javascript'>
var val = document.getElementsByName('txtName');
alert(val[0].value);
alert(window.txtName.value);
</script>
Run Code Online (Sandbox Code Playgroud)
在上面的代码我们正在使用
alert(val[0].value);
alert(window.txtName.value);
Run Code Online (Sandbox Code Playgroud)
这两种从对象中获取价值的方法.两种方式之间有什么区别,哪种方式最好.
alert(window.txtName.value);
Run Code Online (Sandbox Code Playgroud)
这是错误的方式,只适用于IE.IE将所有命名和IDd元素复制到属性中window,因此也复制到全局变量中,这会导致各种问题.不要依赖于此.
这样做的更好方法是:
alert(document.forms[0].elements.txtName.value);
Run Code Online (Sandbox Code Playgroud)
假设input是在第一<form>页上.您还可以使用表单名称(如果有):
alert(document.forms.someform.elements.txtName.value);
Run Code Online (Sandbox Code Playgroud)
并且还可以缩短:
alert(document.someform.txtName.value);
Run Code Online (Sandbox Code Playgroud)
虽然我不建议这样做,因为你更有可能在名字和财产之间发生冲突.
这个:
alert(document.getElementsByName('txtName')[0].value);
Run Code Online (Sandbox Code Playgroud)
没关系,但是既然你已经有了id='txt'输入,那么使用它会更简单,更快,而不是依赖于非唯一name属性:
alert(document.getElementById('txt').value);
Run Code Online (Sandbox Code Playgroud)