用传统的iframe上传图片,成功后传递数据到父页面的文本框内
传值语句window.parent.document.getElementById('EditForm').Photo.value='/Upload/PicFiles/2011090380794081.JPG';
页面能看到文本框内显示有传递的图片路径查我查看页面源代码显示文本框HTML<input name="Photo" id="Photo" type="text" value="" size="">为空。。因要加JS判断,为空时不能提交表单  求教

解决方案 »

  1.   

    验证语句处于window.onload中。而传值语句放在body里面就行了吧
      

  2.   

    当你用JS操作了DOM后,直接查看源代码是不会看到变化的,因为这个改变存在于内存当中,要借助于其它的工具才能看到,比如firefox的firebug。你可以试试,返回数据赋值后,alert(window.parent.document.getElementById('Photo').value)肯定是有value值的。
      

  3.   

    但我这样检测 trim(document.EditForm.Photo.value)=="" 返回TRUE 咋办?
      

  4.   


    验证放到表单里 onsubmit="return CheckPhoto()"验证代码
    /*检测房源图片上传*/function CheckPhoto()
    {
       if (trim(document.EditForm.is_save.value)=="no" || trim(document.EditForm.Photo.value)=="" || trim(document.EditForm.sPic.value)=="")
       {
      alert("提示:请先上传房源照片后再提交保存本页面信息!");
          document.EditForm.Photo.focus();
      return false;
      exit;
       }
       return true;
    }
      

  5.   


    <input name="is_save" type="hidden" id="is_save" value="yes" /> 
    默认值是 no 查看源代码时可以看到值有更新,麻烦再指教指教 :D
      

  6.   

    能看到值,说明就有值,如果你判断没有,则可能的原因是
    1,你的判断语句错误
    2,你的form位置错误,如Photo没有放到EditForm里面,或者页面有form嵌套了(这个是不允许的),或者页面中有多个<input name=Photo
      

  7.   

    或者 是不是这样(document.EditForm.Photo.value)获取不到传递的值?
      

  8.   

    <form name="EditForm">
    <input name="Photo" >
    </form>document.EditForm.Photo.value这样是绝对没有问题的。你的form是name="EditForm"吗?另外你的验证代码要写在
    <input type=button onclick="验证函数的调用">
      

  9.   

    表单名确定没错验证代码写到 <form name="EditForm" onsubmit="验证函数的调用">按钮是提交按钮 <input type=submit...  这样OK的吧,如果只加到提交按钮上,点击会提交
      

  10.   

    onsubmit="return 验证函数的调用">
      

  11.   

    本帖最后由 net_lover 于 2011-09-05 13:02:51 编辑