0

こんにちは皆さん、ユーザー入力を検出して属性を割り当てたり、ユーザー入力に基づいて属性を削除したりできるjqueryを作成するにはどうすればよいですか。私のシナリオは、4 列のテーブルがあることです。まずはドロップダウンです。残りは読み取り専用のテキストボックスです。ドロップダウンのデフォルト オプションは NULL または空です。ユーザーがドロップダウンから選択した場合、2 つの texbox は読み取り専用にしないでください。そのプロセスではエラーはありませんが、ユーザーが再び NULL に設定した場合。2 つのテキストボックスが再び読み取り専用に戻ることはありません。どこが間違っているのかわかりません。

これが私のjqueryコードです:

$("[id^=code]").on('change',function(){
    var index = this.id.match(/\d+/)[0];
    var validate = $('#code'+index).val();

    if(validate != ''){
        $("#qty"+index).removeAttr('readonly');
        $("#price"+index).removeAttr('readonly');
    }        
});

$("[id^=code]").on('change',function(){
    var index = this.id.match(/\d+/)[0];
    var validate = $('#code'+index).val();

    if(validate == ''){
        $("#qty"+index).attr('readonly');
        $("#price"+index).attr('readonly');
    }        
});

そして、これは私のテーブルです

for($i = 1; $i < 16; $i++){
    echo "<!-- ITEM {$i} -->";
    echo "<tr>";
    echo "<td>";
    echo "<select name='code[]' id='code{$i}' style='width:100'>";
    echo "<option value=''><label>--CHOOSE ITEMS--</label></option>";
    foreach($resultGetCode->result_array() as $list){
        echo "<option value='".$list['itemid']."'>".$list['itemcode']." --- ".$list['itemname']."</option>";  
    }
    echo "</select>";
    echo "</td>";
    //echo "<td><input type='text' name='item[]' class='k-textbox' id='item{$i}' value='' /></td>";
    echo "<td><input type='text' name='qty[]' id='qty{$i}' style='text-align: center' readonly='readonly' /></td>";
    echo "<td><input type='text' name='price[]' id='price{$i}' style='text-align: right;' onblur='' readonly='readonly' /></td>";
    echo "<td><input type='text' name='total[]' id='total{$i}' style='font-family: courier; text-align: right; background-color: lightgray; color: red' readonly='readonly' value='' /></td>";
    echo "<tr>";
}

これがフィドルです:http://jsfiddle.net/rochellecanale/jnkc3/5/

4

1 に答える 1

1

フィドルを作成した方が簡単ですが、これを試してください

if(validate == ''){
     $("#qty"+index).prop('readonly', true);
     $("#price"+index).prop('readonly', true);
 }

更新しますフィドル

于 2013-09-04T09:37:10.530 に答える