0

jquery コード ブロックに問題があります。シンプルな jsp ページがあり、特定のアイテムを検索するための検索ボタンがあります。その検索ボタンをクリックすると、そのフィールドに指定したアイテム ID に基づいて ajax リクエストが呼び出され、サーバーから情報が取得され、そのページの他のフィールドに入力されます。現在、価格のフィールドがあり、それに沿ってチェックボックスがあります。私のロジック(jquery)では、価格が0でない場合、価格フィールドに価格が表示され、チェックボックスがオンになり、そのjspページでも価格が特定の場所に書き込まれる必要があります。しかし、私の問題は、価格が0でない場合、チェックボックスがオンになり、ページに価格が書き込まれることですが、チェックボックスをオフにすると、価格は「チェックボックスをオフにすると、初めて(ページがロードされた後)そのページに表示されなくなります。しかし、もう一度チェックしてからもう一度チェックを外すと、チェックボックスがチェックされている場合は表示され、チェックボックスがチェックされていない場合は表示されないなど、正常に機能しています。したがって、最初にチェックボックスをオフにしようとすると、ロジックが機能しないという問題があります。Mozilla ではなく、IE (バージョン 8) でのみこの問題に直面しています。理解を深めるためのコードスニペットは次のとおりです... Mozilla ではなく、IE (バージョン 8) でのみこの問題に直面しています。理解を深めるためのコードスニペットは次のとおりです... Mozilla ではなく、IE (バージョン 8) でのみこの問題に直面しています。理解を深めるためのコードスニペットは次のとおりです...

サンプル.jsp

<table id="item_search">
<tr><td><label>Item Id : </label></td><td><input type="text" id="item_id"   name="item_id"></td>
<td><input type="button" id="item_search" value="item Info"></td>

<tr><td><label>Price :</label></td>
<td ><input type="text" id="item_price" name="item_price"><input type="checkbox" id="item_isprice" name="item_isprice"></input></td>
<legend>Label</legend>
<div id="label_preview">
<div class="price"> </div>

sample.js

$("#item_search").bind("click",function() 
{$.getJSON("----some url-----",
{
       id : $("#item_id").val(),
}, iteminforeturn);
});

$("#item_isprice").change(refreshlabel);

function iteminforeturn(json) {
   $("#item_price").val(json['price']);
   refreshlabelFirst();
}

function refreshlabelFirst(event){
if($("#item_price").val() != 0 ){
    $("#item_isprice").attr("checked",true);
    $("#label_preview .price").html("price : " + $("#item_price").val());
} else {
    $("#item_isprice").attr("checked",false);
    $("#label_preview .price").html("");
}
 }

function refreshlabel(event) {
    if($("item_price").val() != "" && $('#item_isprice').is(':checked')){
    $("#label_preview .price").html("price In : " + $("#item_price").val());
} else {
    $("#label_preview .price").html("");
}
}
4

1 に答える 1