我在HTML页面中定义了两个脚本。我从附加到Submit按钮的onclick事件调用'function2'脚本。当我点击提交按钮时,我会收到uncaught reference error - function1 is not defined
。
function1
从网址中提取变量(我在页面的网址中包含以下变量:?m=1&u=2&f=3
)。
function2
将url变量分配给局部变量,然后将这些局部变量指定为3个隐藏表单字段的值(字段ID:msg,mem和frm)。
我添加了vars以显示在console.log中,但由于函数未定义,所以它们从未进行过...
任何想法我做错了什么?
<script language="javascript">
function function1(param) {
var pattern = new RegExp('[?&]' + param + '((=([^&]*))|(?=(&|$)))', 'i');
var mz = window.location.search.match(pattern);
return mz && (typeof(mz[3]) === 'undefined' ? '' : mz[3]);
}
</script>
<script language="javascript">
function function2() {
var mm = (function1('m'))();
var uu = (function1('u'))();
var ff = (function1('f'))();
document.getElementById("msg").value=mm;
document.getElementById("mem").value=uu;
document.getElementById("frm").value=ff;
console.log("mm:", mm);
console.log("uu:", uu);
console.log("ff:", ff);
}
</script>
答案 0 :(得分:1)
您IIFE(立即调用函数表达式)如:
(function1('m'))();
首先执行function1
,然后JS尝试从function1
调用返回的值,但它没有返回函数,因此出错。
要解决此问题,只需删除IIFE,即:
mm = function1('m');