2

ここに配置された例http://jsfiddle.net/aS87B/3/

ここに 3 つの入力フィールドがあります

First input<br>
<td class='exchange_rate1'>
<input type="text" name="exchange_rate1" id='exchange_rate1' class='exchange_rate_changed1' value="">
</td>
<br>
Second input<br>
<td>
<input type="text" name="is_exchange_rate_changed1" id="is_exchange_rate_changed1" class='exchange_rate_changed_test1'>
</td>
<br>        
Third input <br>
<td>
<input type="text" name="is_exchange_rate_changed_test1" id="is_exchange_rate_changed_test1">
</td>        

そしてここにjquery/javascript

$(".exchange_rate_changed1").on("change", function () {
document.getElementById('is_exchange_rate_changed1').value = 1;
});


$(".exchange_rate_changed_test1").on("change", function () {
document.getElementById('is_exchange_rate_changed_test1').value = 1;
});

最初の入力に何か入力すると、2 番目の入力の値が変わります (問題ありません)。3 番目の入力についても同じことが予想されます (2 番目の入力の値が変更された場合、3 番目の入力の値は 1 になります)。しかし、それは機能しません。

何を変える必要がありますか?代わりにon("change"何か他のものを使用する必要があるとします

非常に悪い結論実験を行った後、結論に達しました。一部の入力フィールドの値がスクリプトによって (手動ではなく) 設定されている場合、javascript/jquery ifステートメントでその値に基づくことはできません。

たとえば、id="is_exchange_rate_changed_test1"(3 番目の入力) の値はスクリプトによって設定/作成されます。

それなら何とかしたいif ($("#is_exchange_rate_changed_test1").val() > 0)ifalways の値が空になるため、これは機能しません。

何か簡単な解決策があればアドバイスをお願いします。現時点では、入力フィールドの値をajaxtophpおよび in phpexecuteで渡すソリューションのみが見つかりましたif

4

1 に答える 1

6

スクリプトによって値が変更された場合、次のようなイベントは発生changeしません。手動で発生させる必要があります。jQuery が提供する .trigger() メソッドを使用するか、以下に示すようにその簡略版を使用して、イベントを手動でトリガーできます。

$(".exchange_rate_changed1").on("change", function () {
    $('#is_exchange_rate_changed1').val(1).change()
});


$(".exchange_rate_changed_test1").on("change", function () {
    $('#is_exchange_rate_changed_test1').val(1).trigger('change')
});

デモ:フィドル

于 2013-09-02T10:04:27.533 に答える