3

ユーザーがデータを編集/修正できるようにするテーブルを作成しました。テーブルは正常に読み込まれ、このテーブルをできるだけ使いやすくするために使用されます。情報を変更する必要があるときに選択できるドロップダウンボックスを追加しました。

JSファイルは次のとおりです。

for(y=0;y<data.defect2.length; y++) {
    myselectoptions += '<option value="'+data.defect_id[y]+'"' +
        (data.defect_id[y]==data.defect[y] ? ' selected="selected"' : '') + 
        '>'+data.defect2[y]+'</option>';
}

if (data.isbn2 === null) {
    $("#inventoryUpdate").append('<tr><td>No Records Found</td></tr>');
} else {
    for(var x=0;x<data.isbn2.length;x++) {
        $("#inventoryUpdate").append('<tr><td id="tableSKU">'+data.sku[x]+'</td><td id="tableISBN">'+data.isbn2[x]+
        '</td><td id="tableQuantity">'+data.quantity[x]+
        '</td><td><select id="tableDefect">'+myselectoptions+//'" selected="'+data.defect[x]+'">'+myselectoptions2+
        '"</select></td><td><select id="tableSource">'+sourceoptions+
        '"</select></td><td><select id="tableFeature">'+featureoptions+
        '"</select></td><td><select id="tableWater">'+wateroptions+
        '"</select></td><td><select id="tableLocation">'+locationoptions+
        '"</select></td><td><input type="text" id="tableProcessDate" value="'+data.processDate[x]+
        '"/></td><td><select id="tableBookType">'+bookoptions+
        '"</select></td><td><select id="tableCreatedBy">'+useroptions+
        '"</select></td><td><select id="tableModifiedBy">'+useroptions+
        '"</select></td></tr>');
    }

    $("#inventoryUpdate").trigger("update");
}

これはすべて機能しますが、データベースクエリから選択したアイテムをデフォルトにすることはできません。選択されたアイテムは、テーブルの最後のアイテムの値です。これを達成する方法についてのアイデアはありますか、それとも不可能ですか?

4

3 に答える 3

2

次のようなコードを使用して値を設定できます。

作業例: http://jsfiddle.net/fwsyL/

HTML

<select id="Options">
    <option value="1">Value 1</option>
    <option value="2">Value 2</option>
    <option value="3">Value 3</option>
    <option value="4">Value 4</option>
    <option value="5">Value 5</option>
</select>
<br />
<input id="TextSet" type="text" value="" style="width:50px;"/> 
<input id="ButtonSet" type="button" value="Set" style="width:50px;"/>​

JQuery

$('#ButtonSet').click(function() {
    $('#Options option[value="' + $('#TextSet').val() + '"]').attr("selected",true).end();
});

これは、解決策を見つけるためのもう 1 つの方法です。詳しい情報が入り次第。あなたからあなたのコードに固有の答えを提供できます。</p>

于 2012-12-17T14:53:09.200 に答える
2

selected最初のレンダリング中に属性を追加しようとするのではなく、後で実行することをお勧めします。このようなもの:

var selectedValue = 'option[value="'+data.defect_id[y]+'"]';
$('#tableDefect').find(selectedValue).attr("selected",true).end();
于 2012-12-11T19:04:22.340 に答える
1

まあ、それはいくつかのことをしましたが、私は最終的にそれを理解しました。私は置く必要がありました

for(y=0;y<data.defect2.length; y++) {
     myselectoptions += '<option value="'+data.defect_id[y]+'"' +
         (data.defect_id[y]==data.defect[x] ? ' selected="selected"' : '') + '>'+data.defect2[y]+'</option>';
} 

の内側

if(data.isbn2 === null){
    $("#inventoryUpdate").append('<tr><td>No Records Found</td></tr>');
} else {
    for(var x=0;x<data.isbn2.length;x++) {
        $("#inventoryUpdate").append('<tr><td id="tableSKU">'+data.sku[x]+'</td><td id="tableISBN">'+data.isbn2[x]+
            '</td><td id="tableQuantity">'+data.quantity[x]+
            '</td><td><select id="tableDefect">'+myselectoptions+//'" selected="'+data.defect[x]+'">'+myselectoptions2+
            '"</select></td><td><select id="tableSource">'+sourceoptions+
            '"</select></td><td><select id="tableFeature">'+featureoptions+
            '"</select></td><td><select id="tableWater">'+wateroptions+
            '"</select></td><td><select id="tableLocation">'+locationoptions+
            '"</select></td><td><input type="text" id="tableProcessDate" value="'+data.processDate[x]+
            '"/></td><td><select id="tableBookType">'+bookoptions+
            '"</select></td><td><select id="tableCreatedBy">'+useroptions+
            '"</select></td><td><select id="tableModifiedBy">'+useroptions+
            '"</select></td></tr>');
    }
}

したがって、最終製品は次のようになります。

if(data.isbn2 === null){
    $("#inventoryUpdate").append('<tr><td>No Records Found</td></tr>');
} else {
    for(var x=0;x<data.isbn2.length;x++) { 
        for(y=0;y<data.defect2.length; y++) {
            myselectoptions += '<option value="'+data.defect_id[y]+'"' +
                (data.defect_id[y]==data.defect[x] ? ' selected="selected"' : '') +
                '>'+data.defect2[y]+'</option>';
        } 

        $("#inventoryUpdate").append('<tr><td id="tableSKU">'+data.sku[x]+'</td><td id="tableISBN">'+data.isbn2[x]+
            '</td><td id="tableQuantity">'+data.quantity[x]+
            '</td><td><select id="tableDefect">'+myselectoptions+//'" selected="'+data.defect[x]+'">'+myselectoptions2+
            '"</select></td><td><select id="tableSource">'+sourceoptions+
            '"</select></td><td><select id="tableFeature">'+featureoptions+
            '"</select></td><td><select id="tableWater">'+wateroptions+
            '"</select></td><td><select id="tableLocation">'+locationoptions+
            '"</select></td><td><input type="text" id="tableProcessDate" value="'+data.processDate[x]+
            '"/></td><td><select id="tableBookType">'+bookoptions+
            '"</select></td><td><select id="tableCreatedBy">'+useroptions+
            '"</select></td><td><select id="tableModifiedBy">'+useroptions+
            '"</select></td></tr>');
    }
}
于 2012-12-19T14:08:55.740 に答える