2009-06-16 13 views
-1

で働いていない私は、次のHTMLフォームがあります。SELECT要素は、jQueryの

<div id="main"> 
    <form Id="search-form" action="/ViewRecord/AllRecord" method="post"> 
    <div> 
     <fieldset> 
      <legend>Search</legend> 
      <p> 
       <label for="username">Staff name</label> 
       <input id="username" name="username" type="text" value="" /> 
       <label for="softype"> software type</label> 

       <input type="submit" value="Search" /> 
      </p> 
     </fieldset> 
    </div> 
    </form> 
</div> 

をそして私はusernameフィールドがクリックされたときにalertボックスを表示します。これは私のjQueryのコードです:

$(function() { 
$("#username").click(function() { 
     $.getJSON("ViewRecord/GetSoftwareChoice", {}, 
    function(data) { 
     alert(data); 
    }); 
    }); 
}); 

Clickが解雇されることはありません特定の理由。何か私は間違っていた?

+0

フォームタグは閉じていますか? –

+0

$ .getJSONの外にアラートを入れてみましたか?あなたのアラートが表示されないように、$ .getJSONが失敗する可能性があります。 –

+0

@haim、はい、フォームタグは閉じています。私は質問を編集しました – Graviton

答えて

1

をあなたのコードが正しいとイベントが発生する必要があります。または、より良い、あなたはリクエストが完了していないかどうかを確認するために、低レベル$.ajaxコールを使用することができます。問題はおそらくAJAX呼び出しです。これが本当に問題であることを確認するために、AJAX呼び出しの前に警告を出してください。

1

明示的要素をクリックした場合clickにのみ発動するようあなたは、代わりにfocusイベントをお勧めします。それ以外は

$(function() { 
    $("#username").focus(function() { 
     $.getJSON("ViewRecord/GetSoftwareChoice", {}, function(data) { 
      alert(data); 
     }); 
    }); 
}); 

、あなたは必ずリクエストが完了されていることを確認するためにFirebugで見たいと思うかもしれません成功しました。

$(function() { 
    $("#username").focus(function() { 
     $.ajax({ 
      url: 'ViewRecord/GetSoftwareChoice', 
      dataType: 'json', 
      type: 'GET', 
      success: function(data) { alert(data); }, 
      error: function() { alert('something went wrong!'); } 
     }); 
    }); 
});