这是linker.js
deps = ['jquery'];
define (deps, function($) {
var linker = {
'link' : function(ortholog,link) {
$form = $.createElement("form");
$form.setAttribute("method", "POST");
$form.setAtrribute("action", link);
$form.setAttribute("onsubmit" ,window.open(action+ortholog));
$('body').append($form);
$form.setAttribute("target","_blank");
$form[0].submit();
}
//return linker();
}
return linker;
});
我得到一个undefined不是“form = $ .createElement(”form“)之后的函数错误;” 我怎么解决这个问题? (这个linker.js在我的软件中被另一个javascript调用。)
答案 0 :(得分:1)
为什么不......
deps = ['jquery'];
define (deps, function($) {
var linker = {
'link' : function(ortholog,link) {
$form = $('<form>');
$form.attr({
method: 'POST',
action: link,
target: '_blank'
}).appendTo('body');
$form.submit(function() {
window.open(action+ortholog);
});
$form.submit();
}
//return linker();
}
return linker;
});
答案 1 :(得分:-1)
jQuery没有$.createElement
函数,但document
没有:
$form = document.createElement("form");
此外,您的onsubmit
不对。 window.open
将立即执行。您需要为属性分配一个函数,如下所示:
$form.onsubmit = function(){
window.open(action+ortholog)
};
最后,您的submit()
来电正在使用$form[0]
。这是一个问题,因为$form
是一个DOM元素,所以你不应该使用[0]
后缀。
$form.submit();