0

jquery で計算を実行した後、ISBN テキスト ボックスまたはエディション テキスト ボックスにフォーカスを合わせようとしていますが、代わりにページの最初のボタンまたは売上ランク フィールドに移動しています。

私のhtmlは次のとおりです。

    <td><label>ISBN</label></td>
                <td><input type="text" id="isbn" name="isbn" /></td>
                <td></td>
                <td rowspan=7><a id="detailURL" href="#" target="_blank"><img id="bookCover" src="../images/imgNotFound.gif" height="200px" /></a></td>
                <td rowspan=7><input type="button" id="isIE" name="isIE" value="IE Price Reduction" />
                    <br/><br/><input type="button" id="isAIE" name="isAIE" value="AIE Price Reduction" />
                    <br/><br/><input type="button" id="isModHighlight" name="isModHighlight" value="Moderate Highlighting" />
                    <br/><br/><input type="button" id="isHeavHighlight" name="isHeavHighlight" value="Heavy Highlighting" />
                    <br/><br/><input type="button" id="isMissingSupply" name="isMissingSupply" value="Missing Supply" />
                    <br /><br/><input type="button" id="waterDamage" name="waterDamage" value="Water Damage / Poor Cond." />
                </td>
                <td rowspan=7>
                    <!-- SUPPLY CHECK TABLE -->
                    <table id="supply" summary="Check Supply" width="10%" border="1" align="right">
                    <caption><h3>Check Supply!</h3></caption>
                    <thead>
                    <tr>
                        <th scope="col" class="rounded-isbn">Supply:</th>
                        <!--<th scope="col" class="rounded-isbn">Who Requires:</th>-->
                    </tr>
                    </thead>
                    <tbody>
                    </tbody>
                    </table>
                </td>
            </tr>
            <tr>
                <td><label for="quantity" class="label">Quantity</label></td>
                <td><input type="text" id="quantity" name="quantity" /></td>
                <td></td>
            </tr>
            <tr>
                <td><label for="payPrice" class="label">Price to Pay</label></td>
                <td><input type="text" id="payPrice" name="payPrice"/></td>
                <td></td>
            </tr>
            <tr>
                <td><label>Edition</label></td>
                <td><input type="text" id="edition" name="edition" readonly="readonly"/></td>
                <td></td>
            </tr>
            <tr>
                <td><label>Title</label></td>
                <td><input type="text" id="title" name="title" /></td>
                <td></td>
            </tr>
            <tr>
                <td><label>Sales Rank</label></td>
                <td><input type="text" id="salesRank" name="salesRank" readonly="readonly" /></td>
                <td></td>
            </tr>


            <tr>
                <td></td><td><input type="button" id="buy" value="Buy" /></td><td></td>
    </table>
    </form>

問題のjqueryは次のとおりです。

if($('#payPrice').val() <= 0 ) {
    $(':text')[0].focus();
} else {
    $("#edition").focus();
}

の値が の場合#payPrice、フィールドではなく<=0最初のボタンにデフォルト設定されます。の値が の場合は、編集ではなく、売上ランクのテキスト領域に焦点を当てています。タイムアウトを設定しようとしましたが、うまくいきませんでした。それが機能するかどうかを確認するために変更しましたが、それでも最初のボタンに移動しました。ここで何が間違っていますか?これを修正して、正常に動作させるにはどうすればよいですか?id="isIE"isbn#payprice>0$("#isbn).focus();$(':text')[0].focus();

4

3 に答える 3

1

やってみました

if(parseFloat($('#payPrice').val()) <= 0 ) {
...
}

parseFloat で違いがない場合は、これを試してください。

if($('#payPrice').val()<=0){
   $("input[name='isbn']").focus(); 
}else{
   $("input[name='edition']").focus(); 
}

それ以外の場合は、その例を見ることができます:

function sampledFunction()
{
 window.setTimeout(function ()
 {
  $('#mobileno').focus();
 }, 0);
 return false;
}

ここを読む

于 2012-09-11T13:11:22.033 に答える
1

より良いセレクターを使用することをお勧めします。

のような$('[type=text]')または$('input:text')

参照: jQuery テキスト セレクター

于 2012-09-11T13:21:29.217 に答える
0

これが最終結果です。私を正しい方向に向けてくれた JackTurky のおかげです。

    //focus on either isbn or edition
        setTimeout(function() {
            if($('#payPrice').val() <= 0 ) {
                    $("#isbn").focus();
                } else {
                    $("#edition").focus();
                }
                }, 10);
于 2012-09-11T16:25:14.277 に答える