阅读:8170回复:7
[已解决]请问在FireFox中怎样使用javascript得到 input文本框中输入的value?<input type="text" id="JumpText1" name="JumpText1" value="" /> <p><a class="JumpLink" href="#" onmouseup="Jump1('JumpText1');">跳转1</a></p> <script type="text/javascript"> <!-- function Jump1(praJumpText) { alert ('Inputed Is:' + document.getElementById(praJumpText).getAttribute('value')) } //--> </script> <p></p> <form id="JumpForm2" name="JumpForm2" action="#" method="post"> <div> <input type="text" id="JumpText2" name="JumpText2" value="" /> </div> </form> <p><a class="JumpLink" href="#" onmouseup="Jump2('JumpText2');">跳转2</a></p> <script type="text/javascript"> <!-- function Jump2(praJumpText) { var myForm = document.JumpForm2; var myOBJ = myForm[praJumpText]; alert ('Inputed Is:' + myOBJ.value); } //--> </script> 在IE中,点击两个“跳转”都能得到文本框中输入的值。 但在FireFox中,第一个不能得到新输入的值,第二个可以得到。不过即使得到,form中如果不定义name属性也不能得到。可是name属性不能通过W3C的XHTML严格的校验。 另外,文本框的value值如果定义了初始值,第一个“跳转”倒是可以得到值,但只能是初始值,不能得到输入的新值。 这个地方不需要表单,只要有一个文本框就可以。 请问在FireFox中怎样才能得到input文本框中新输入的value?最好使用DOM的getAttribute。 |
|
1楼#
发布于:2006-08-16 00:28
使用 input 对象的 value 属性就行了
貌似这个应该去 W3C 区吧 |
|
2楼#
发布于:2006-08-16 00:28
谢谢关注!
使用input对象的意思就是我的第二种方法吧? 那么在FF中正常运行就需要在from中使用name属性,而name属性在XHTML中不能校验。 getAttribute函数在FF中读取标签的其他属性可以(比如input标签的type属性等),就是不能读取input标签中的value属性。 既不使用包含不符合W3C规范的name属性的form,也能正常得到Input标签的value的方法,难道在FireFox中没有吗? 而且,我认为这个问题不属于W3C的问题,而是FireFox对JavaScript的兼容的问题。 |
|
3楼#
发布于:2006-08-16 00:28
我的意思是使用 document.getElementById().value
这个是 W3C 的 最后一句话是说这个帖子应该发在论坛的 ”写W3C 推荐标准“区 |
|
4楼#
发布于:2006-08-16 00:28
|
|
5楼#
发布于:2006-08-16 00:28
谢谢!这个问题已经解决。
但是设定value呢?我还需要设定某个input的value为空。 我试着用下面两种方法,都没有重新设定value: 1、document.getElementById('JumpText1').value = ''; 2、document.getElementById('JumpText1').setAttribute('value',''); W3School的 http://www.w3schools.com/htmldom/prop_text_value.asp中的例程是第一种方法,但在FF中不好用。 |
|
6楼#
发布于:2006-08-16 00:28
我这儿第一种是可以的,仔细检查一下吧
|
|
7楼#
发布于:2006-08-16 00:28
感谢Triton的热心帮助!问题已经解决。
经过多次测试,我不能在FF得到value的原因是因为我在设定 document.getElementById('JumpText1').value = '' 之前为了调试,加入了 alert ();。 把alert放在后面就可以了。 不过这个问题真的很奇怪。 |
|