2011-08-10 15 views

回答

3

我认为你正在试图做的是改变action属性的值被点击一个单选按钮时。

replaceWith替换整个元素(和它的孩子),这就是为什么你的整个表单被替换(一个空的)。

相反,你可以使用attr改变单一属性的值:

$('input:radio').click(function() {       
    var url = $(this).attr('alt');      
    $('form').attr("action", url);       
}); 
0

一个input[type=radio]没有任何innerHTML。另一方面,形式确实。

但是我想,你要这样,而不是一些代码:

$('input:radio').click(function(){       
    var url = $(this).attr('alt');      

    $(this).closest('form').attr('action', url); // Target the form for this input, rather than the first form in the document ($('form')). 
}); 

见工作小提琴:http://jsfiddle.net/MWFN9/2/,并检查了文档的attr()方法。

0

this在您的处理程序的第二行指向input元素。因此this.innerHTML为空。你得到没有内容重新创建的表单。

相关问题