关于javascript传值该注意的问题
比如你在设计这么一个页面:在前台页面有一个form表单,而表单在提交前要进行判断其内容是否为空,为空则不允许提交,不为空则允许提交。
那么要实现这样的功能,我们第一想到的当然是利用javascript写一个function进行判断了。例子如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script type="text/javascript"> var flag; //判断输入是否为空 function check(title) { if (title != "") { flag = true; } else { flag = false; document.getElementById("msg").innerHTML = "<font style='color:red'>输入不能为空!</font>"; } } //返回true或者false,控制表单能否提交 function checkf(){ return flag; } </script> </head> <body> <form action="check.do" method="post" onsubmit="return checkf()"> <input type="text" name="title" onblur="check(this.value)"> <span id="msg"></span> <input type="submit" value="提交"> </form> </body> </html>
从例子我们可以看到,在输入框内,调用了onblur函数(焦点判断),即onblur后面接的check事件会在输入失去焦点时(即输入框在输入内容时会有光标一闪一闪的,而当你点击输入框以外的任意位置,就失去了输入焦点)发生。
当check事件发生后,就会调用check方法对title的值进行判断(this.value在输入框内等价于name的值即title的值)。
以上都不是我发文提的重点。
我要说的重点是,在check方法内的if判断,
当所传的值即 title 为空时,判断条件不能写 title != null,切记!!!
如果判断输入是否为空,判断条件应该是这个 title != ""
“”这才表示为空,而不是 null !!!
还有form表单调用了 onsubmit 方法,主要是判断内容是否为空,为空则无论怎么点击提交,表单都不会提交到后台。
只有check方法判断输入不为空后,将flag的值变为true,则表单才可以提交。
例子用到的
onblur
onsubmit
另外如果是按钮类型,还可以用 onclick 方法。