2

我有这样的表格

<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>很容易地做到这一点,但客户想要一个输入字段!

4

4 回答 4

11

您可以这样做,您需要为项目添加 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");
}); 

编辑:最好是页面底部的javascript;

满的

<!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>
于 2012-09-24T15:24:47.233 回答
2

你可以这样做:

$('#myForm').submit(function() {
    this.action = 'http://mysite.com/<xyz>.html';
    return true;
}
于 2012-09-24T15:18:39.973 回答
1

您需要从输入字段中获取值并填充 xyz 值.. 试试这个

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

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

    this.action = 'http://mysite.com/' + value + '.html';
    return true;
}
于 2012-09-24T15:23:21.637 回答
0

首先获取您的输入,然后更新操作。如果您想在更改值后提交表单,则返回 true,如果这些是单独的按钮,则返回 false。

<button onclick="changeVal($('input').val()">change value</button>
<script>
    function changeVal(value){
    $("form").attr("action",'http://mysite.com/'+value+'.html');
    return true;
    }
</script>

Be careful doing things like this, as if you use this solution you will be opening yourself up to javascript injection attacks. You'll want to "scrub" your input before injecting it into your form.

于 2012-09-24T15:27:42.980 回答