2011-01-18 6 views
1

私のフォームにはいくつか問題があります。.live、.click、およびpreventDefaultによるJqueryの問題

私は、データベースに対してフォームを検証するためにjquery ajaxを使いたいのですが、私はさまざまな問題に直面します。

1.

$('#formsubmit').click(function(e) { 
    e.preventDefault(); // this is not working, the page reloads 
}); 

2.

$('#formsubmit').live('click', function(e) { 
    e.preventDefault(); //works, but... 
    var firstname = $('#firstname').val(); // returns an empty string and ... 
    firstname = document.getElementById('firstname'); //does not return anything either 
    alert("$('#firstname')"); // returns [object][object] ... should'nt it be [object][html inputelement] 
}); 

これまでのところ、私は得ることができないので、私は自分のフォームの送信ボタンをクリックして上のAJAX負荷をトリガーすることができましたhavent私の入力フィールドの値。

ここに何か不足していますか? 別の方法を使用することは可能ですか: 1. submit-click時のページリロードを防止します。 2.フォームのすべての値を取得し、ajax経由でPHPスクリプト に送信します。3.答えを待ち、 htmlの要素に従ってください。

答えて

1

問題はあなたがここにキャッチしたいものであるsubmitイベントは、このように、clickイベントを防止しているではないです:私たちが.serialize()を使用している、上記で

$("#formid").live("submit", function(e) { 
    e.preventDefault(); 
    $.post("myPage.php", $(this).serialize(), function(result) { 
    $("#resultContainer").html(result); 
    }); 
}); 

<form>自体は、通常の投稿と同じように(成功したすべての入力から)すべてのデータを取得することができます( JavaScriptで)。


また、私はあなたの質問から言うが、あなたのid属性は、例えば、一意であることを確認しca't 1つだけid="firstname"がある場合は、そうでない場合は多くの問題があります。

+0

ご返信いただきありがとうございました。あなたのヒントが私の問題を解決しました。 –

関連する問題