Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数因全局变量而失败_Javascript_Variables_Global - Fatal编程技术网

Javascript函数因全局变量而失败

Javascript函数因全局变量而失败,javascript,variables,global,Javascript,Variables,Global,我使用此函数提交到任何url或“self”, 无论是否使用查询字符串,很多时候都没有任何问题 function submitu(url, q) { var frm = document.<?php echo $formname ?>; if (url == '') {url = '<?php echo $thispage?>'; } frm.action = url+q; frm.submit(); } 函数提交(url,q){ var frm=文件。; 如果(u

我使用此函数提交到任何url或“self”, 无论是否使用查询字符串,很多时候都没有任何问题

function submitu(url, q) {
 var frm = document.<?php echo $formname ?>;
 if (url == '') {url = '<?php echo $thispage?>'; }
 frm.action = url+q; frm.submit(); }
函数提交(url,q){
var frm=文件。;
如果(url=''){url='';}
frm.action=url+q;frm.submit();}
如果我尝试将PHP变量移到函数外部,如下所示,它将停止工作(frm undefined error)

var thispage='';
var frm=文件。;
函数提交(url,q){
如果(url=''){url=thispage;}
frm.action=url+q;frm.submit();}
我还尝试了var frm=document.forms[''

我没有任何其他冲突的javascript

(1) 。有人能告诉我为什么这不起作用吗? (2). 如果函数被放置,为什么第一种方法也会失败 jquery$(function(){….}ready函数的内部和顶部


非常感谢

它失败了,因为在函数外部时,var frm=document.formname;
将在页面加载时立即运行,即在表单元素实际构建之前,因此您得到“未定义”。在函数内部,它仅在函数运行时运行,此时DOM已完成并可以找到它。

完美,现在我明白了-谢谢Mattmat,当som当你回答一个问题时,你会本能地看看你如何奖励他们。这是网站运作的一部分:每个答案左边的投票图标下面都有一个勾号图标,当你点击它时,它会变成绿色。这是其他用户的信号,表明这个答案对你有效,并回答了你提出的问题(如果是这样的话,它比其他任何可能已经发布的帖子都要好)。这被视为一件好事,因为它显示了一个权威的答案,其他人可以信赖。
var thispage = '<?php echo $thispage?>';
var frm = document.<?php echo $formname?>;
function submitu(url, q) {
 if (url == '') {url = thispage;}
 frm.action = url+q; frm.submit();}