2010-02-23 3 views
3

MVC를 사용하고 있는데 차이는 아니지만 검색을위한 텍스트 상자가 있습니다. 텍스트 상자가 비어있을 때 양식 게시시 입력하지 않음

<% using (Html.BeginForm("Index", "Search", FormMethod.Post)) { %> 
      <%= Html.AntiForgeryToken() %> 
      <div id="search_box"> 
      <span id="search-title">Search Site</span> 
       <div> 
        <%= Html.TextBox("searchText", "type here, then press enter", new { @class = "search_input" }) %> 
       </div> 
      </div> 
     <% } %> 

은 내가 위해 onblur 사용자가 그것으로 클릭하거나 그것에서 아무것도 입력하지 않고 때 일부 텍스트 스와핑을이 텍스트 상자에 설정된 이벤트 onfocus 및이하는 데 사용됩니다. 결국, 우리가

내 JS의 문제는 상관없이 제출 없다는 것입니다 등, 같은 자동 완성으로, JS를 통해 다른 기능을 추가 할 수 있기 때문에, 나는 JS 파일로 이동. 정말 필요한 것은

var searchHandler = function() { 

    var searchBox = "searchText"; 
    var defaultText = "type here, then press enter"; 

    var attachEvents = function() { 

     $("#" + searchBox).focus(function() { 
     if (this.value == defaultText) { 
       this.value = ''; 
      } 
     }).blur(function() { 
      if (this.value == '') { 
       this.value = defaultText; 
      } 
     }).keyup(function(event) { 
      var searchTerms = $("#" + searchBox).val(); 
      if (event.keyCode == 13 && searchTerms == '') { 
       return false; 
      } 
      else { 
       return true; 
      } 
     }); 

    }; 

    return { 

    init: function() { 
      $("#" + searchBox).val(defaultText) 
      attachEvents(); 
     } 
    } 
}(); 

$().ready(function() { 
    searchHandler.init(); 
}); 

는 너무 텍스트 상자가 비어있는 경우 양식을 제출하지 않는 입력이 그것을 확인하는 것입니다. 어떤 아이디어?

답변

3

jQuery를 사용하는 경우 유효성 검사 규칙이 충족되지 않으면 false를 반환 할 수 있습니다.

$(document).ready(function(){ 
    $('form').submit(function(){ 
     if($('#searchText').val() == '') 
      return false; 
     else 
      return true; //just to be explicit, not really necessary. 
    }); 
}); 

또는 그와 비슷한 것.

관련 문제