0

2 つのラジオ ボタンと、ユーザーの選択に基づいて特定のフォームにつながる送信ボタンを備えたフォームがあります。jQuery を使用して 2 つのボタンを切り替えたかったのですが、少し迷ってしまいました。

プロジェクト内の別のファイルからの私の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からいくつかの機能を取得しましたが、それは間違いなく正しいとは言えません..質問が明確で完全だったことを願っています. 前もって感謝します!!

4

2 に答える 2

1

まず、prop を使用せず、attr を使用します。propは遅いです。変数を定義したので、再度調べることはやめましょう。if/else ステートメントでは、変数を使用するだけです。&& で何をしようとしているのか完全にはわかりません。2 つの入力の値を設定しようとしていると思われます。その場合、それらは別個のステートメントにする必要があります。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);
    }
});
于 2013-01-14T19:53:28.007 に答える
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 ファイルを見てみましょう。

    function goHere()
    {
var yesButton = $('#Yes');
var noButton = $('#No');
var str ="Please select an option first then press the 'Submit' button";
if (yesButton[0].checked) 
{
    submitForm('yesForm');
}
else if (noButton[0].checked)
{
    submitForm('noForm');
}
else 
{
    document.write(str.fontcolor.font("red"));
}
    }

ご覧のとおり、関数「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>


それでおしまい!!簡単に言えば; 時々、何か新しいことを学ぶことは非常に貴重ですが、それが壊れていない場合など. これが後で誰かに役立つことを願っています!

于 2013-01-15T14:12:44.830 に答える