0

我已经使用此功能提交到任何 url 或“自我”,无论是否有查询字符串,很多次都没有任何问题。

function submitu(url, q) {
 var frm = document.<?php echo $formname ?>;
 if (url == '') {url = '<?php echo $thispage?>'; }
 frm.action = url+q; frm.submit(); }

如果我尝试将 PHP 变量移到函数之外,如下所示,它将停止工作(frm 未定义错误)

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();}

我也试过 var frm = document.forms[''];

我没有任何其他冲突的javascript,

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

非常感谢

4

1 回答 1

1

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

于 2012-04-19T10:20:37.307 回答