使用复选框或单选按钮在表单操作之间进行切换

时间:2013-04-26 07:59:11

标签: javascript jquery html

我有两个单独的insert.php文件...如果用户有或没有勾选复选框或单选按钮,我将如何在它们之间交替。

例如,如果我的html设置如此......

<form action="x.php" method="post">

然后用户勾选复选框,因此表单需要更改为y.php

<form action="y.php" method="post">

如何实现这一目标?

6 个答案:

答案 0 :(得分:3)

你可以在单选按钮上使用javascript功能,

<script type="text/javascript">
function OnSubmitForm()
{
  if(document.myform.operation[0].checked == true)
  {
    document.myform.action ="x.php";
  }
  else
  if(document.myform.operation[1].checked == true)
  {
    document.myform.action ="y.php";
  }
  return true;
}
</script>
<form name="myform" onsubmit="return OnSubmitForm();">

   <input type="radio" name="operation" value="1" checked>radio1
   <input type="radio" name="operation" value="2">radio2
   <p>
   <input type="submit" name="submit" value="save">
   </p>
</form>

答案 1 :(得分:0)

表单是一个标记,它有属性。 Action实际上是form标签的一个属性。

当用户选择复选框,radiobutton(通过javascript中的catch事件)时,您可以使用javascript通过表单标记的更改属性来执行此操作。

答案 2 :(得分:0)

你就是这样做的。

<form id="myForm" action="x.php" method="post">
    <input type="checkbox" id="chkbox" />
</form>

<script type="text/javascript">
    $(document).ready(function(){
        $('#chkbox').click(function() {
            // `this` keyword is the native DOM object
            $('myForm').attr('action', this.checked? 'y.php' : 'x.php');
        });
    });
</script>

答案 3 :(得分:0)

如果您需要更改表单的操作并允许使用javascript,则有一个非常简单的

  1. 为表单命名,以便您可以使用javascript进行定位。
  2. 创建一个带有ID的复选框,然后使用if语句更改表单的属性“action”。
  3. 以下示例代码。

    <form name="form1" action="x.php" method="post">
        <input id="changeAction" type="checkbox" />
    </form>
    <script type="text/javascript">
        var checkBox = document.getElementById('changeAction');
        var form = document.form1;
    
        checkBox.onclick = function() {
            (checkBox.checked ? form.setAttribute('action', 'y.php') : form.setAttribute('action', 'x.php'))
    
            console.log(form);
        }
    </script>
    

答案 4 :(得分:0)

一些内联javascript可以快速完成这个技巧

jQuery示例:

<input type="radio" name="operation" value="1" checked onclick="$(this).parent().attr('action', 'x.php');">radio1
<input type="radio" name="operation" value="2" onclick="$(this).parent().attr('action', 'y.php');">radio2

Plain js

<input type="radio" name="operation" value="1" checked onclick="this.parentNode.action='x.php';">radio1
<input type="radio" name="operation" value="2" onclick="this.parentNode.action='y.php';">radio2

答案 5 :(得分:0)

使用jQuery和不引人注目的JavaScript ......

<script type="text/javascript">
$(function(){
  $('#MyForm').submit(function(){
    var action = $(this).find('input[name=operation]:checked').val();
    $(this).attr('action', action);
  });
});
</script>

<form id="MyForm" method="post">

   <input type="radio" name="operation" value="x.php" checked>radio1
   <input type="radio" name="operation" value="y.php">radio2
   <p>
   <input type="submit" name="submit" value="save">
   </p>
</form>