大家看一段简短的代码:
  <div id="aaa"><select><option value="1">1</option><option value="2">2</option></select></div>
  <div>
  <input type="button" value="aaa" onclick="bbb()"/>
  </div>
  <SCRIPT LANGUAGE="JavaScript">
  <!--
 function bbb(){
  alert(document.getElementById('aaa').innerHTML);
 }
  //-->
  </SCRIPT>用firefox打开之后,当改变下拉框的值之后点击按钮,innerHTML中无法保存当前的状态。这个问题也可以扩展到输入框,radio,checkbox。
在最近一个项目中,一个iframe页面中有非常多的数据要提交,提交之后如果后台验证数据有些不合法的,就要返回原来的页面,并提示错误。
原来的思路是,用户点击提交之后,读取iframe中的innerHTML存于parent中,出现错误时直接调用保存的数据,并显示错误,但是现在发现ff中无法保存输入项的值,所以请教一下高手:
1、能否解决ff中的这个问题?
2、如果不能,怎么处理大量数据提交后出错并返回的好办法。 

解决方案 »

  1.   

    那你这样要保存的数据不是很多?为什么不保存当前选择项的编号alert(document.getElementById('aaa').getElementsByTagName("select")[0].selectedIndex); 
      

  2.   

    将数据递交到隐藏的iframe中,这样页面不会跳转,也就不存在保存状态的问题了
    <form TARGET="hf">.....</form>
    <iframe NAME="hf" STYLE="display:none" src="about:blank">
    iframe中,在返回页面的window.onload处理成功和失败状态
    成功
    window.onload=function(){
       alert("递交成功")
       parent.location.href  = "success.html"
    }
    失败
    window.onload=function(){
       alert("未填写")
       parent.document.forms[0].xxx.focus();
       location.href  = "about:blank"
    }
      

  3.   

    不明白啊!
    <input type="button" value="aaa" onclick="bbb()"/>
    alert(document.getElementById('aaa').innerHTML); 
    input本来就没有什么,请问楼主认为这句应该弹出什么内容啊?