2013-08-19 48 views
0

我有以下代码:形式的动态属性变化和提交工作不

HTML:

<form action="/" id="mainForm" method="get"> 
    <input type="text" name="val1" /> 
    <button id="cmdSubmit">Submit</button> 
</form> 
<button id="cmdSubmit2">Submit 2</button> 

的Javascript:

$("#cmdSubmit2").bind('click', function() { 
    Submit2(); 
}); 

var Submit2 = function() { 
    var form = $("#mainForm").clone(); 
    form.attr("action", "/testing"); 

    form.submit(); 
} 

我试图做的是动态改变使用JavaScript形式的action属性,然后提交它(到不同的url)。

我希望发生(在的jsfiddle)什么是点击提交按钮应该加载的jsfiddle主页,因为/testing网址不存在点击Submit2按钮应加载一个404错误页面。

这适用于Chrome(28.0.1500.95),但在Firefox(23.0.1)或IE(10.0.9200.16660)中不起作用。

这些浏览器都没有在控制台中显示任何错误 - 我很难过。有任何想法吗?

JSFiddle

编辑:我其实有克隆的形式,忘了提及。此外,这在Safari(v5.1.7)中正常工作。

回答

1

你需要以某种方式将其插入到DOM:

function Submit2() { 
    var form = $("#mainForm").clone(); 
    form.attr("action", "/testing"); 
    form.hide().appendTo('body'); 

    form.submit(); 
} 

fiddle

对我的作品(FF 23.0)

+0

奇怪的是,小提琴没有在IE中工作,但是当我将这个修补程序应用于我的实际程序时,它在所有浏览器中都能正常工作。谢谢! – Mansfield

0

您不需要clone()表单。试试这个:

var Submit2 = function() { 
    var form = $("#mainForm"); 
    form.prop("action", "/testing");  
    form.submit(); 
} 

Updated fiddle

+0

其实,我确实有另一个要求克隆表格(我应该提到这一点)。抱歉! – Mansfield