2012-09-24 3 views
2

내가이jQuery를/자바 스크립트 변경 양식 액션

<html> 
    <body> 
    <form action='' name='myform' method='POST'> 
    <input type='text' name='cars'> 
    <button action='submit'>Search Cars</button> 
    </body> 
</html> 

같은 형태를 갖는다 입력 필드를 기준으로 내가 뭘 원하는 입력 필드에 충전 무엇을 기준으로 action='http://www.mysite.com/<cars_value>.html'> 같은 것으로 양식 작업을 변경입니다 (자동 완성으로 채워짐).

쉬운 방법이 있나요? <select>으로 쉽게 처리 할 수 ​​있지만 고객이 대신 입력란을 원합니다. 다음과 같이

답변

6

을 시도 입력 필드에서 값을 얻고 XYZ 값을 채울 필요가, 당신은 항목에 ID를 추가해야합니다. 사용자 입력을 확인하는 것이 좋습니다.

HTML

<form action='' name='myform' id="myform" method='POST'> 
    <input type='text' name='cars' id="cars"> 
    <button action='submit'>Search Cars</button> 
</form> 

jQuery를

$('#myform').submit(function(){ 
    var car = $('#cars').val(); 
    $(this).attr('action', "http://www.mysite.com/" + car + ".html"); 
}); 

편집 : 그것은 페이지의 하단에 자바 스크립트로 최고입니다;

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
    <form action='' name='myform' id="myform" method='POST'> 
    <input type='text' name='cars' id="cars"> 
    <button action='submit'>Search Cars</button> 
    </form> 
    <script src="path-to-jquery"></script> 
    <script> 
    // Shorthand for $(document).ready(); 
    $(function() { 
    $('#myform').submit(function(){ 
    var car = $('#cars').val(); 
    $(this).attr('action', "http://www.mysite.com/" + car + ".html"); 
    }); 
    }); 
</script> 
</body> 
</html> 
+0

그걸 축하합니다. 그 생각은 내가 생각한 것처럼 보입니다. 죄송합니다 jquery/js에 새로운 비트가 - 코드 (jquery 비트)에서 어디로 이동하고 전혀 들어가야합니까? – bertster

+0

어디에 넣을 지 보여주기 위해 내 대답을 편집했습니다. – jsweazy

+0

정말 고마워요. 시도해 볼게요. 건배 JSweazy – bertster

2

당신은 그것을 할 수 있습니다 :

$('#myForm').submit(function() { 
    this.action = 'http://mysite.com/<xyz>.html'; 
    return true; 
} 
+0

감사합니다. 어떻게 을 양식에서 수집 할 수 있습니까? 예를 들어 사용자가 Ferrari 또는 Aston Martin 또는 Jaguar를 입력하는 경우? – bertster

+0

그 경우,''을'$ ('myInputField') .val()'로 대체하십시오. 여기서'myInputField'는 URL에 값이 필요한 필드의'ID'입니다. – techfoobar

1

당신은 .. 당신은이 작업을 수행 할 수있는이

$('#myForm').submit(function() { 

    var value = $('input[type="text"]').val(); 

    this.action = 'http://mysite.com/' + value + '.html'; 
    return true; 
} 
0

FULL

먼저 입력을 얻을, 다음 작업을 업데이트합니다. 값을 변경 한 후 제출하기 위해 양식을 작성하려면 true를, 별도의 버튼 인 경우 false를 리턴하십시오.

이 솔루션을 사용하는 것처럼 자바 스크립트 주입 공격에 노출되는 것처럼주의해야합니다. 폼에 입력하기 전에 입력 내용을 "제거"할 수 있습니다.

+0

보안에 대한 조언을 주셔서 감사합니다, 나는 모든 PHP 입력에 대한 생각 - 그래서 JS 측면에 대해 동일한 할 것입니다. 건배 – bertster

관련 문제