1

助けてください、私はこれにアプローチする方法がよくわかりません: クライアントがいくつかのフィールドを含むいくつかのセクションを持つアプリを持っています。時々、同じフィールドが表示されます。たとえば、「数量」または「」は、3 つ、4 つ、またはそれ以上のセクションに表示される場合があります。

Web フォームが送信されると、空の次の数量フィールドが値を上書きし、反対側に空/null 値が生成されるため、反対側に送信される値は空になります。[もう一方の端には数量フィールドが 1 つしかありません]

彼らが維持したいこのアプリの構造のために、jqueryを使用して次のことを言う/行う明確な方法が必要です:

フィールド #quantityOne、#quantityTwo、#quantityThree を取得し、どのフィールドに値が含まれているかを判断し、その値を取得して非表示フィールド finalQty に配置します。

誰かがこれを達成する方法を教えてもらえますか?

明確にするために 1 つのメモを追加します。

ユーザーはセクションの 1 つだけに入力するため、数量フィールドの 1 つだけになります。したがって、qtyField #1 に 555 を入れると、555 を finalQty にコピーする必要があり、qtyField #2 に 35 を入れると、35 を finalQty にコピーする必要があります。

私のコード

html/jquery:

<fieldset id="sectionOne" name="sectionOne">
<legend class='legendHdrs' >Section One</legend>
Name: <input type="text" name="nameOne" id="nameOne" class="name" /><br />
Quantity: <input type="text" name="quantityOne" id="quantityOne" class="quantity"/>
    </fieldset><br /><br />

<fieldset id="sectionTwo">
<legend>Section Two</legend>
Name: <input type="text" name="nameTwo" id="nameTwo" class="name" /><br />
Quantity: <input type="text" name="quantityTwo" id="quantityTwo" class="quantity"/>
</fieldset><br /><br />

<fieldset  id="sectionThree">
<legend>Section Three</legend>
Name: <input type="text" name="nameThree" id="nameThree" class="name" /><br />
Quantity: <input type="text" name="quantityThree" id="quantityThree" class="quantity"/>
</fieldset>
<hr>

Final Qty: <input type="text" name="finalQty" id="finalQty" class="finalQty"/>
 <input type="button" value="Add Qty" id="addQty">
</form>​

    $(document).ready(function() 
{
    $('#addQty').on('click', function()
            {
            var holdval;
        $('#quantityOne,#quantityTwo,#quantityThree').each(function() 
                    {
                        if($(this).val() !== '')
                            {
                                holdval = $(this).val() 
                            }
                    });
        $('#finalQty').val(holdval);
            });

 });
4

2 に答える 2

1

jqueryセレクターに各ノードのIDをリストする代わりに、クラスを使用してそれをループする方が良い場合があります。

  $('#addQty').on('click', function(){
        $.each($('.quantity'), function(){
            if($(this).val() !== ''){
                //do something
            }
        });
    });
于 2012-06-06T13:22:11.490 に答える