2

我有两个单独的 insert.php 文件...我将如何在它们之间进行切换,具体取决于用户是否勾选了复选框或单选按钮。

例如,如果我的 html 是这样设置的......

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

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

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

这将如何实现?

4

6 回答 6

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>
于 2013-04-26T08:05:16.480 回答
0

表单是一个标签,它具有属性。动作实际上是表单标签的一个属性。

当用户选择复选框、单选按钮(通过 javascript 中的 catch 事件)时,您可以通过更改表单标签的属性来使用 javascript 来实现。

于 2013-04-26T08:03:23.893 回答
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>
于 2013-04-26T08:08:13.197 回答
0

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

  1. 为表单命名,以便您可以使用 javascript 定位它。
  2. 制作一个带有 ID 的复选框,然后使用 if 语句更改表单的属性“操作”。

下面的示例代码。

<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>
于 2013-04-26T08:10:27.860 回答
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

纯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
于 2013-04-26T08:12:12.007 回答
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>
于 2013-04-26T08:27:55.090 回答