xuyang0109
小狐狸
小狐狸
  • UID13849
  • 注册日期2006-07-21
  • 最后登录2006-08-17
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:7844回复:7

[已解决]请问在FireFox中怎样使用javascript得到 input文本框中输入的value?

楼主#
更多 发布于:2006-08-16 00:28
<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。
Triton
小狐狸
小狐狸
  • UID2271
  • 注册日期2005-01-17
  • 最后登录2007-05-14
  • 发帖数89
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2006-08-16 00:28
使用 input 对象的 value 属性就行了

貌似这个应该去 W3C 区吧
xuyang0109
小狐狸
小狐狸
  • UID13849
  • 注册日期2006-07-21
  • 最后登录2006-08-17
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
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的兼容的问题。
Triton
小狐狸
小狐狸
  • UID2271
  • 注册日期2005-01-17
  • 最后登录2007-05-14
  • 发帖数89
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2006-08-16 00:28
我的意思是使用 document.getElementById().value
这个是 W3C 的

最后一句话是说这个帖子应该发在论坛的 ”写W3C 推荐标准“区
Triton
小狐狸
小狐狸
  • UID2271
  • 注册日期2005-01-17
  • 最后登录2007-05-14
  • 发帖数89
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2006-08-16 00:28
xuyang0109
小狐狸
小狐狸
  • UID13849
  • 注册日期2006-07-21
  • 最后登录2006-08-17
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
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中不好用。
Triton
小狐狸
小狐狸
  • UID2271
  • 注册日期2005-01-17
  • 最后登录2007-05-14
  • 发帖数89
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2006-08-16 00:28
我这儿第一种是可以的,仔细检查一下吧
xuyang0109
小狐狸
小狐狸
  • UID13849
  • 注册日期2006-07-21
  • 最后登录2006-08-17
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2006-08-16 00:28
感谢Triton的热心帮助!问题已经解决。

经过多次测试,我不能在FF得到value的原因是因为我在设定 document.getElementById('JumpText1').value = '' 之前为了调试,加入了
alert ();。

把alert放在后面就可以了。

不过这个问题真的很奇怪。
游客

返回顶部