2015-01-27 2 views
-3

검색을 위해 텍스트 입력을 포함하는 양식이 있습니다. 그 값이 null 또는 Search... 동일하지 않은 경우 나 사용자의 조회수가 텍스트 입력에 입력 할 때 양식을 제출하려면, 여기 내 코드 : 모든키 누르기와 입력 값에 양식을 제출하는 방법은 무엇입니까?

<form 
    action="<?php echo MAIN_URL."search"; ?>" 
    method="post" 
    onkeydown="if (event.keyCode == 13 && this.getElementByName('search').value!='') { this.submit(); }"> 
    <input type="submit" name="" value=""> 
    <input type="text" name="search" value="Search..." onclick="if(this.value=='Search...')this.value='';" onblur="if(this.value=='')this.value='Search...';" /> 
</form> 

답변

1

첫째, 당신은 정말하고 싶지 않아요 "검색 ..."은 언제든지 입력란의/value /로 입력하십시오.

<input type="text" name="search" placeholder="Search..."> 

브라우저 지원 (오래된 IE를 ...) 다양하지만, 사용할 수 polyfills이 있습니다 요즘 당신과 같이, placeholder 속성을 사용합니다. 전반적으로 : 더 깨끗하고 나은 솔루션.

현재 enter에 양식을 자동으로 제출하지만, 어떤 JS를 포함 할 필요가 없습니다은 긴 텍스트 input가 비어로와 양식을 방지하는 코드입니다 :

$(document).keypress(function (e) { 
    if (e.which === 13 && $('input[type="text"]').is(':focus')) { 
    if ($('input[type="text"]').val().length < 1) { 
     e.preventDefault(); 
    } 
    } 
}); 

fiddler : http://jsfiddle.net/o6fn7eor/1/

(나는 당신이 질문에 태그를 달았 기 때문에 자유롭게 jQuery를 사용했다)

관련 문제