0

onblur友達私は、イベントに割り当てられたjavascript関数に次のコードを持っています<input type="text" name="rate" />#NewOrderは div でinput[name=quantity]あり、input type="text"です。これらの両方の入力要素は#NewOrderdiv 内にあります。

function addMaterial() {
    var qnty, rate;
    if (Number($('#NewOrder input[name=quantity]').val()) > 0) {
        qnty = Number($('#NewOrder input[name=quantity]').val())
    }

    else {
        alert('Invalid Quantity');
        $('#NewOrder input[name=quantity]').focus(); // ** Working
        return;
    }
    if ($('#NewOrder input[name=rate]').val().length == 0) {
        rate = 0;
    }
    else {
        if (!Number($('#NewOrder input[name=rate]').val() > 0)) {
            alert('Invaid Rate');     // ** Working
            alert($('#NewOrder input[name="rate"]').val()); // ** Working
            $('#NewOrder input[name="rate"]').focus();      // ** Not Working
            $('#NewOrder input[name="rate"]').trigger('focus'); // Also not Works
            return;
        }
        else
            rate = Number($('#NewOrder input[name=rate]').val());
    }
    var mat = getMaterialFromArray($('#mats').find(':selected').text());
    $('#mats').focus();
}

私が間違っている友達..? 私は何が欠けています..??
それは私を苛立たせています。
一方alert($('#NewOrder input[name="rate"]').val());、実際の値とは、jQuery を使用してコントロールが選択されていることを意味します。
しかし、どちら$('#NewOrder input[name="rate"]').focus();$('#NewOrder input[name="rate"]').trigger('focus');機能しません。

ライブ バージョンのリンクを追加しましたhttp://a.bobdn.com
に アクセスしてみてください。投資家番号として「111」、パスワードとして「abc」を使用してください。次に、Material -> New Order に移動し、何が問題なのかを確認してください。

4

3 に答える 3

2

Firefoxのバグのようです。Chrome では、コードは正常に機能しています。
Firefox でサポートするには、次のような関数を作成できます。

function setFocus(controlSelectorString) {
    setTimeout(function() {
        $(controlSelectorString).focus();
    }, 0);
}

ジャスフィドル

于 2012-09-02T11:10:43.953 に答える
0

I think you are calling a focus at the last line of that function and that is getting called every time the function is called and thats overriding your focus of textbox.

$('#mats').focus();
于 2012-09-02T10:32:33.410 に答える
-1

コードを確認したところ、同じ name='Rate' のテキスト ボックスが 2 つあることがわかりました。それが問題だと思います。名前を変えて一度お試しください。

于 2012-09-02T10:54:55.387 に答える