0

jquery ajaxの投稿があり、ユーザーがテキストを入力してテキストボックスにEnterキーを押すと、このajaxがトリガーされ、テキストボックスの値が<pre>html要素に表示されます。http://jsfiddle.net/LQg7W/2133/明らかに、このjsfiddleには何も表示されません。これは、ajax投稿をその中に入れていないためです。しかし、ユーザーが何も書かずにEnterキーを押すと、このajaxがトリガーされ、何かが返されます。しかし、ユーザーから空の文字列をキャッチするにはどうすればよいですか?

これは私の見解にあります:

 if(e.keyCode == 13) {
                var currentLine = $('#terminal').text();
                var inputData = $(e.currentTarget).val();

                $('#terminal').text(currentLine + "\r\n" + inputData + "\r\n"); //show the current and previous value
                $("#textInput").val(" $> ");
                AjaxPost(inputData);

            }

そして、このajax投稿はモデルにあります:

 AjaxPost : function(dataAttribute, view, cacheId) {

        console.log(cacheId);
         var that = this;

         if(dataAttribute === ""){
            view.showMessage( " " , true);
         }

          $.ajax({

           type : "POST",
           url : "/api/user" , 
           datatype : "application/json",
           contentType: " text/plain",
           data : dataAttribute,
           success : function(data) {
            console.log(data);

           },
           error : function(error) {


           },

私の問題は、入力データのデフォルト値が常にいっぱいであるため、"$>"この条件をチェックできないことです! (inputdata === "" )アイデアはありますか?

4

2 に答える 2

0

入力値がデフォルトの場合は、"$>"それもチェックするだけで済み、ajax 呼び出しを回避するために戻ります。

if(dataAttribute === "" || dataAttribute === "$>") { view.showMessage( " " , true); return; }

于 2013-09-14T09:18:53.740 に答える
0
var m = inputdata.match(/\s*\$\>\s*/)
if (inputdata === m[0]){
    console.log('empty')
}
else{
    console.log('not empty')
}
于 2013-09-14T09:19:19.257 に答える