Jquery / Javascript根据输入字段更改表单操作

时间:2012-09-24 15:16:08

标签: javascript jquery forms

我有一个这样的表格

<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 个答案:

答案 0 :(得分:8)

您可以这样做,您需要在项目中添加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>

答案 1 :(得分:2)

您可以按照以下方式执行此操作:

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

答案 2 :(得分:1)

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

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

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

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

答案 3 :(得分: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>

小心做这样的事情,就像你使用这个解决方案一样,你将开启自己的javascript注入攻击。在将输入注入表单之前,您需要“清理”输入。