防止用户在ajax帖子中输入空字符串的问题

时间:2013-09-14 09:06:03

标签: javascript jquery

我有一个jquery ajax帖子,当用户输入一些文本并按下输入文本框时,这个ajax会触发并在<pre> html元素中显示文本框的值。 http://jsfiddle.net/LQg7W/2133/显然这个jsfiddle没有显示任何东西,因为我没有把ajax帖子放在里面。但是当用户没有写任何内容并按下输入时,会触发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 === "" )我不能检查这个条件,因为它总是满的!有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果输入值默认为"$>",那么您只需要检查它,并返回以避免ajax调用:

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

答案 1 :(得分:0)

var m = inputdata.match(/\s*\$\>\s*/)
if (inputdata === m[0]){
    console.log('empty')
}
else{
    console.log('not empty')
}