首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

因表单中的元素不确定,用document.form1.XXX.value取值提示异常

2012-09-23 
因表单中的元素不确定,用document.form1.XXX.value取值提示错误。这个可能不是很好说明,我尽量用易懂的语言

因表单中的元素不确定,用document.form1.XXX.value取值提示错误。
这个可能不是很好说明,我尽量用易懂的语言来表述。


首先表单form1里有个元素是用ajax加载进来的,所以不一定存在。


例如下面这个例子,要求如下:

1.打开页面后,客户要求宽(width)和高(hight)是必选的,所以2个input框打开页面即存在

2.颜色(color)非必选,当用户触发某一事件时,加载进div的id="color"的位置,不具体叙述。

3.要求点击提交的按钮(其实是将一个图片做成了按钮的样子,并非button元素)时,页面不刷新



代码如下



<form name="form1" type="text" >

<div color="color"><input name="color" type="text" ></div>

<input name="hight" type="text" >
<input name="width" >
<img src="images/像提交按钮的一个图片.png" onclick="startRequest('提交','提交.php?width='+document.form1.width.value+'&hight='+document.form1.hight.value+'&color='+document.form1.color.value+');">


<div id="提交">提交成功后,提交.php返回的内容在这里输出</div>

</form>



 

看明白了么?

那个提交按钮就是一个image,onclick后调用了一个万用ajax.js文件。实现页面不刷新提交。





最后阐述一下问题,图片的onclick事件被触发后,用javascript调用了3次,取得input框的值(width、higth、color),

如果说<input name="color">这个元素被加载进页面,则程序执行正常;

如果说<input name="color">这个元素没有被加载进页面,则点击image时,屏幕左下角会出现一个小叹号提示脚本错误(消息: 'document.form1.color.value' 为空或不是对象)



请问怎样才能在没有color输入框的时候,image的onclick事件触发时使网页不报错,并且使document.form1.color.value获取的值为0,或者为空呢?









[解决办法]
这样吧。把document.form1.color.value
改为:(document.form1.color==null?"":document.form1.color.value)这样不就解决了。
[解决办法]

HTML code
<img src="images/像提交按钮的一个图片.png" onclick="startRequest('提交',getParams());"><script type="text/javascript">function getParams(){    var params="提交.php?width="+getVal('width');    params+='&height='+getVal('height');    params+='&color='+getVal('color');    //还有就继续加    return params;}function getVal(a){    var o=document.getElementsByName(a)[0];    return o?o.value:"";}</script> 

热点排行