2013-01-14 109 views
0

我有一个带有两个单选按钮和一个提交按钮的窗体,它会根据用户的选择导致一个特定窗体。 我想使用jQuery在两个按钮之间切换,但已经让自己有点失落。jQuery单选按钮功能无法正常工作

下面是从该凸出另一个文件我的javascript:

function goTo() 
{ 

var yesButton = $('#yesRad'); 
var noButton = $('#noRad'); 

if (yesButton[0].checked) 
{ 
submitForm('yesForm') && noButton.Checked==false; 


} 
else (noButton[1].checked) 
{ 
submitForm('noForm') && yesButton.Checked==false; 
} 

jsp中,我有以下代码中:

<form:form action="interested" commandName="user" name="yesForm" id="yesForm"> 
    <input type="hidden" name="state" value="<c:out value="${requestScope.state}"/>" /> 
    <input type="hidden" id="address" name="address" value="${user.address}" /> 
    <input type="hidden" name="mode" value="1" /> 
    <input type="radio" name ="radio"id="yesRad" value="yesForm" checked="checked" />Yes<br> 
</form:form> 

<form:form action="notinterested" commandName="user" name="noForm" id="noForm"> 

    <input type="hidden" name="state" value="<c:out value="${requestScope.state}"/>" /> 
    <input type="hidden" id="address" name="address" value="${user.address}" /> 
    <input type="hidden" name="mode" value="1" /> 
    <input type="radio" name="radio" id="noRad" value="noForm" />No<br> 
</form:form> 

提交

<script> 
    $("#yesRad").change(function(){ 
     var $input = $("#yesRad"); 
     var $inputb = $("#noRad"); 

     if($inputb.is(':checked')) 
      $("#yesRad").prop("checked", false); 
     else if($input.is(':checked')) 
      $("#yesRad").prop("checked",true) && $("#noRad").prop("checked",false); 

}); 
</script> 

我已经从我的jQuery中获得了一些功能,但它绝对不是正确的.. 我希望我的问题清晰彻底。提前致谢!!

+0

你想在这里做什么? 'submitForm('yesForm')&& noButton.Checked == false;' –

+0

为什么你用'&&'连接属性赋值? – R0MANARMY

+0

那是我开始迷失的地方。再次我对jQuery相对陌生,并试图在函数中尝试不同的操作数:\有什么想法来解决这个问题?我真的只是想确保点击每个按钮时,其他按钮是'取消选中',当表单重新加载或浏览时,按钮重置 – Abraxas

回答

1

首先,不要使用道具,请使用attr。道具比较慢。 你已经定义了变量,所以我们不要再查找它们。在你的if/else语句中只使用变量。 我不完全确定你想要做什么与& &。我怀疑你试图设置两个输入的值。如果是这样,他们应该是单独的陈述。如果inputb被选中,没有理由将其设置为检查,所以我们可以删除该部分。

您可能希望在两个输入上触发此更改。

$("#yesRad, #noRad").change(function(){ 
    var $input = $("#yesRad"); 
    var $inputb = $("#noRad"); 
    if($inputb.is(':checked')){ 
     $input.attr("checked", false); 
    } else if($input.is(':checked')){ 
     $inputb.attr("checked",false); 
    } 
}); 
0

解决方法:使用javascript并从单独的窗体元素中取出单选按钮。 首先让我们来看看在所涉及的JSP表单元素:

<form:form action="interested" commandName="user" name="yesForm" id="yesForm"> 
    <input type="hidden" name="state" value="<c:out value="${requestScope.state}"/>" /> 
    <input type="hidden" id="address" name="address" value="${user.address}" /> 

</form:form> 

<form:form action="notinterested" commandName="user" name="noForm" id="noForm"> 
    <input type="hidden" name="state" value="<c:out value="${requestScope.state}"/>" /> 
    <input type="hidden" id="address" name="address" value="${user.address}" /> 

</form:form> 

<input name="radio" type="radio" id="Yes" value="yes" />Yes<br> 
<input name="radio" type="radio" id="No" value="no"/>No<br> 

我所做的是在这里简单地采取单选按钮出了独立的形式,并将它们组合在一起......很明显;现在我们来看看JavaScript文件。你可以看到'goHere();'这个函数,你可以看到函数'goHere();'将在下面的代码中告诉提交按钮,我们希望根据用户在我们的单选按钮上的选择来进行提交。 这是我们从JavaScript函数在表单上的提交按钮的电话...

<div class="button-panel" id="Submit"><span class="buttons buttons-left"></span> 
<button type="button" class="buttons buttons-middle" name="submitBtn" onClick="goHere();">Submit</button> 
<span class="buttons buttons-right"></span> 


这就是它!简单的说;有时候,虽然学习新东西,如果没有破产是无价的 - 等等。希望这有助于稍后的人!