<head>
<script language="javascript" type="text/javascript">
var result = "<%=GetArray() %>";
var objInput = document.getElementById("product_model");
if (objInput == null) {
alert("找不到文本框!");
}
</script>
</head>
问题1: var result = "<%=GetArray() %>";此句不放入js文件,写在html代码中可获得值,放入js文件中result的值就是<%=GetArray() %>
问题2: 会弹出"找不到文本框"!
此问题我用了按钮检测文本框是否为空测试
function check_input1() {
var ctl = document.getElementById("product_model");
if (ctl == null) {
alert("找不到文本框!!!!");
return;
}
if (ctl.value.length == 0) {
alert("请输入产品型号!");
return false;
}
}
//check_input1();
按钮的click事件调用check_input1方法没问题,但假如我取消注释//check_input1();会报错找不到文本框!!!
求解!!!!!!
问题1:<%...%>语法是服务器脚本语法,只能在对应的脚本文件(如.asp,.aspx,.jsp,.php等)中被解析。在.js文件中不会对它进行解析,只会把它当作字符串的一部分。
问题2:Html流的执行方向是自上而下,LZ的脚本放在Head标签里,即在Body加载之前。脚本运行时Body里所有的控件都还没加载,当然找不到了。(如果把这段脚本放到要找的文本框后面就可以找到了)
HTML code
<!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>
<title>abc</title>
<!--
<script type="text/javascript">
// 放这里会弹出Error!
var obj = document.getElementById("product_model");
if (obj)
alert("OK!");
else
alert("Error!");
</script>
-->
</head>
<body>
<input type="text" id="product_model" />
<script type="text/javascript">
// 放这里会弹出OK!
var obj = document.getElementById("product_model");
if (obj)
alert("OK!");
else
alert("Error!");
</script>
</body>
</html>
PS:对于函数定义,
JScript code
function check_input1(){}
只是定义了一个函数,并没有运行它。它真正运行的时候是在点击按钮时。所以函数定义一般都放在Head标签里好统一管理。