0

私が遭遇したこの問題に少し困惑しています。

<input type="text" />オブジェクト項目を作成するときに複製する要素がテンプレートにあります。

function buildSectionTest(item) {
if (item == null)
    return;
var sectionItem = $('.templates-mc .templates-mc-section-item').clone();

$('.mc-label', sectionItem).text(item.TestDescription);
$('.mc-input', sectionItem).attr({ 'testid': item.ID, 'syntax': item.TestSyntax, 'value': item.Value });
//$('.mc-input', sectionItem).val("TEST");
//alert($('.mc-input').attr('value');
//alert($('.mc-input').val());

return sectionItem.html(); 
}

ただし、value プロパティは設定されていません。レンダリングされた html を見ると、次のことがわかります。

<input class="mc-input rounded-corners" type="text" testid="6446" syntax="[input]">

いくつかのことを試しましたが (上記のコードではコメントアウトされています)、すべて空の文字列を返すか、値を返しません。

最初は、すべての入力フィールドをクリアしているのではないかと思っていましたが (何らかの理由で)、そうではありませんでした。

my item.Value が null または未定義ではありません。

他の誰かがこの問題に遭遇しましたか?

すべての入力に感謝します!

4

2 に答える 2

3

.attr()を使用して値を設定しないでください.val() を使用してください

$('.mc-input', sectionItem).attr({ 'testid': item.ID, 'syntax': item.TestSyntax}).val(item.Value);

元:

function buildSectionTest(item) {
    if (item == null)
        return;

    var sectionItem = $('.templates-mc .templates-mc-section-item').clone();

    $('.mc-label', sectionItem).text(item.TestDescription);
    $('.mc-input', sectionItem).attr({ 'testid': item.ID, 'syntax': item.TestSyntax}).val(item.Value);
    //$('.mc-input', sectionItem).val("TEST");
    //alert($('.mc-input').attr('value');
    //alert($('.mc-input').val());

    return sectionItem; //do not return the html
}
于 2013-06-20T04:39:35.217 に答える