2012-01-13 5 views
0

그래서 간단한 검색 양식과 제출 버튼이 있습니다. 내가하고 싶은 것은 검색 쿼리에 "="가 포함되었는지 여부를 판단하기위한 입력의 유효성을 검사하는 것입니다. 그렇다면 vert.php에 입력 문자열 (que)을 보내고 싶습니다. 그렇지 않다면 search.php에 보내고 싶습니다.텍스트 입력을 기반으로 양식 동작 변경

<script type="text/javascript" language="JavaScript"> 
function chgact() 
    { 
if(document.myform.que.indexOf(=) == true) { 
    document.myform.action = '/vert.php'; 
    } 
return true; 
} 
</script> 
    <h1>Keyword search</h1> 
    <form name="myform" method="post" action="/search.php" onSubmit="return chgact()"> 
     Keywords: <br/> 
     <input type="text" name="que" id="que"/> 
     <p/> 
     Items to display: <br/> 
     <select name="i"> 
     <option value="10">10</option> 
     <option value="25">25</option> 
     <option value="50">50</option> 
     </select> 
     <p/> 
     <input type="submit" name="submit" value="Search"/> 
    </form> 

아무런 도움도받지 않습니다. 당신은 값 가야의을 얻을 필요가

답변

0

변경 라인 4

if (document.myform.que.value.indexOf('=') != -1) {에 :), 당신은, 그리고 (당신이 문자 '='를 검색하는) 등호를 enquote 필요 indexOf 함수는 -1이 없거나 첫 번째 항목의 위치를 ​​정수로 반환합니다. 부울 값을 반환하지 않습니다.

<script type="text/javascript" language="JavaScript"> 
function chgact() 
    { 
if(document.myform.que.value.indexOf('=') != -1) { 
    document.myform.action = '/vert.php'; 
    } 
return true; 
} 
</script> 
    <h1>Keyword search</h1> 
    <form name="myform" method="post" action="/search.php" onSubmit="return chgact()"> 
     Keywords: <br/> 
     <input type="text" name="que" id="que"/> 
     <p/> 
     Items to display: <br/> 
     <select name="i"> 
     <option value="10">10</option> 
     <option value="25">25</option> 
     <option value="50">50</option> 
     </select> 
     <p/> 
     <input type="submit" name="submit" value="Search"/> 
    </form> 
+0

좋아, -1 또는 1 또는 0과 같은 값을 반환하고 action 값이 의미하는 바를 넣었습니까? 나는 코드를 업데이트했는데, 그것은 myform.action = line이했던 것 같은 행동으로 vert를 놓지 않았다? –

+0

submit 버튼을 클릭했을 때'que' 텍스트 상자에 등호가 없으면'indexOf'는 -1을 반환합니다. 위의 논리에 따르면,'indexOf ('=')'가 -1 이외의 것을 반환하면 ('='문자가 텍스트 상자에서 발견되었음을 의미), 액션은 '/vert.php' . 위 코드 전체를 복사하여 붙여 넣으십시오. 그것은 작동해야합니다. – Travesty3

+0

굉장히 효과가 있으며, 저를 도와 주셔서 감사합니다. 당신은 내가 알고있는 "que"에 값을 전달해야한다고 언급했는데, 그것이 사실이지만 Javascript로해야한다는 것입니다. 맞습니까? 그 코드가 어떻게 코딩되는지 배울 수 있습니까? –

0

난 당신이 PHP와 함께이 작업을 수행 제안 : 여기

업데이트 된 코드입니다. 사이트 방문자가 자바 스크립트를 사용하지 않으면 로직의 이점을 얻지 못할 것입니다. strpbrk() 함수를 사용하여 "="문자를 검색하는 것이 좋습니다.

+0

정확히 무엇을하겠습니까? 이 같은 모습의 스크립트는? 폼 검증을 위해 PHP를 사용하려하지 않았습니다. –

+0

브라우저가 자바 스크립트를 지원하는지 여부에 대한 걱정은 과거의 일이라고 생각합니다. 리디렉션 할 위치를 결정하기 위해 서버에서 추가 페이지를 다운로드해야하는 것이 더 바람직하지 않다고 생각합니다. – Travesty3

+0

우리는 여전히 23 개의 사이트에서 해제 된 js로 모든 사이트 방문자 중 약 11 %를 얻고 있습니다. 소비자는 js의 비율을 높게 설정하고 중대 규모 기업은 더 낮은 비율을 사용합니다. 여기에 귀하의 필터에 대해 알지 못하지만, 11 %를 염두에두고 있습니다. – twood

관련 문제