在另一个脚本中访问变量

时间:2012-05-31 19:55:28

标签: javascript jsp

我有一个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)">

问题在于它没有看到这些玻璃变量:onSubmitMessagealertMessage。我认为问题在于设置这些东西的方式,并将其值改为普通字符串,如"qwe",但它不再起作用。因此,它的主体中的脚本根本看不到这些变量。问题是如何从脚本中获取它们?

6 个答案:

答案 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属性和代码。使用两个标签。