0

JSONJSPを使用してページからデータを取得したい。はJSON、userIdに基づいて引数userIdを受け取ります。ユーザーの詳細は、JSONページに入力されます。getJSON()ページからデータを取得するためにメソッドを使用しています。しかし、私の問題は、ボタンがクリックされたときにフォームが送信されることです。このフィドルは、getJSON()送信を押してもフォームを送信しないメソッドのないフィドルですが、ここではボタンをクリックするとフォームが送信されます。私はfalseまだ役に立たないので戻ってきます。

フォームを送信せずにJSONからデータを取得する方法を教えてください。代替またはより良いアプローチがある場合は、それを提案してください。

これが私のコードです:

$("input[name=submit]").click(function(){
    var dataToBeSent = $("form").serialize();
    alert (dataToBeSent);
    $.getJSON(url,dataToBeSent, function(data) {
        var items = [];
        $.each(data, function(key, val) {
            items.push('<li id="' + key + '">' + val + '</li>');
        });
        $('div').html($('<ul/>', {
            'class' : 'my-new-list',
            html : items.join(' ')
        }));
    });
    return false;

よろしく

ディビヤ

4

2 に答える 2

5

event.preventDefault()を実行する必要があります

$("input[name=submit]").click(function(e){
    ................
    ................
    ................
    ................
    e.preventDefault();
});

falseを返しても、object.onclickとは異なり、イベントは停止しません。デフォルトの動作を停止するには、preventDefaultを使用する必要があります。

于 2013-03-24T05:22:25.347 に答える
0

次のようなイベントリスナーではなく、関数returnに変換してみてください。

<script type="text/javascript">
    function serializeForm(){
        var dataToBeSent = $("form").serialize();
        alert(dataToBeSent);
        // $.getJSON(); function here
        return false;
    }
</script>
<form action="#submit" method="post" onsubmit="return serializeForm();">
    <input type="text" name="data1" id="data1" value="1" />
    <input type="text" name="data2" id="data2" value="2" />
    <input type="text" name="data3" id="data3" value="3" />
    <input type="submit" />
</form>
于 2013-03-24T05:25:55.757 に答える