我有一个JS
function check(obj) {
for( i=0; i<obj.elements.length; i++){
if(obj.elements[i].type=="checkbox"&&obj.elements[i].checked){
if(confirm(onSubmitMessage)){
return true;
}
else{
return false;
}
}
}
alert(alertMessage);
return false;
}
从jsp页面调用它是这样的:
<script src="/TestAppChanged/check.js" type="text/javascript">
var onSubmitMessage = '"<bean:message key="body.onsubmit.delete"/>"';
var alertMessage = '"<bean:message key="body.alert.delete"/>"';
</script>
...
<form action="MyAction" method="POST"
onsubmit="return check(this)">
问题在于它没有看到这些玻璃变量:onSubmitMessage
和alertMessage
。我认为问题在于设置这些东西的方式,并将其值改为普通字符串,如"qwe"
,但它不再起作用。因此,它的主体中的脚本根本看不到这些变量。问题是如何从脚本中获取它们?
答案 0 :(得分:3)
<script>
标记用于加载外部文件,如<script src="path/to/file.js"></script>
或在标记内定义JS代码,如:
<script type="text/javascript">
// Your JS code.
</script>
您不能同时拥有两个标签。因此,拆分您的代码:
<script src="/TestAppChanged/check.js" type="text/javascript"></script>
<script type="text/javascript">
var onSubmitMessage = '"<bean:message key="body.onsubmit.delete"/>"';
var alertMessage = '"<bean:message key="body.alert.delete"/>"';
</script>
答案 1 :(得分:2)
&lt; script src =“”&gt;&lt; / script&gt;之间的块解析时浏览器不支持javascript。你需要另一个&lt; script&gt;阻止,并把你的变量。
答案 2 :(得分:1)
由于您在脚本标记中声明了一个源,因此它看不到全局变量。 您应该删除全局变量并在函数代码之前在js页面中声明它们,然后只需包含如下页面:
<script src="/TestAppChanged/check.js" type="text/javascript"></script>
答案 3 :(得分:1)
您应该有两个脚本标记。一个是变量。然后在它下面另一个,链接到你的javascript文件。
答案 4 :(得分:1)
您可以在标签中设置内容或设置src属性。 它应该是:
<script type="text/javascript">
var onSubmitMessage = '"<bean:message key="body.onsubmit.delete"/>"';
var alertMessage = '"<bean:message key="body.alert.delete"/>"';
</script>
<script src="/TestAppChanged/check.js" type="text/javascript"></script>
答案 5 :(得分:1)
不要在标记内混合使用src属性和代码。使用两个标签。