因表单中的元素不确定,用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>