0

なぜこれがうまくいかないのか、一生わからない。JSONファイルからループで作成されたテキストフィールドの値を取得しようとしています。

このコードでは、一番下で単純な click(function() {alert()} を実行して、値を取得して undefined を返すことができるかどうかを確認します。ただし、'#name' を削除して 'input ' それをキャプチャしますが、いくつかの入力フィールドの最初のものだけです。

どんな助けでも本当に感謝しています

JSON

{
"Controls": [{
    "Button":[{ "Name":"Button", "x": "1","y": "2","width": "3","height": "4","Transition":"" }],

    "Image":[{"x": "5","y": "6","width": "7","height": "8"}],

    "TextField":[{"x": "9","y": "10","width": "11","height": "12","Rows":""}]
}]

}

コード (この上にいくつかの getJSON があります)

//Slide In Attributes Panel Based on Selected Object
$(document).on('click', '#code li', function () {
    var index = $('#code li').index(this);
    var selected = $(this).text();
    switch (selected) {
        case selected:
            $('#options').hide();
            hidePanels();
            $('#temp').remove();
            $('#objectAttributes').show("slide", 200);
            break;

        //If it does work show what variable is being used
        default:
            alert(selected);
            break;
    }

    //Shows Selected LI Index
    $('#codeIndex').text("That was div index #" + index);

    //Pull list of Attributes for selected Object
    $.getJSON('controls.json', function (data) {
        //Build Attributes List
        var attributeList = '<div id="temp">';
        //Target based on selected object
        var target = selected;
        attributeList += '<div>' + target + '<div>';
        $.each(data.Controls[0][target][0], function (kk, vv) {
            attributeList += '<div style="float:right">' + kk + ':' + '<input type="text" id='+ kk + '>' + '</input>' + '</div>';
        });
        attributeList += '</div></div>';
        attributeList += '</div>';
        $('#objectAttributes').append(attributeList);
        $('#temp').append('<div id="editIndex">'+"Modifying index" + " " +index+'</div>');

        $(document).on('click', '#saveAttributes', function () {
            var $x = $('#name').val();
            alert($x);
        })
    });


});
4

1 に答える 1

0

わかりましたので、jsfiddle で少しハッキングした後、答えは最初に考えたよりもずっと簡単であることがわかりました。HTML 4.01 以降、クラス名と ID は大文字と小文字が区別されていました (参照)。これは、セレクター$('#name')が JSON と一致していなかったことを意味しますName

したがって、この単純化された jsfiddleのような単純な変更は、希望どおりに機能するようです。うまくいけば、これが役に立ちます!

于 2012-12-27T06:06:20.357 に答える