2013-04-26 60 views
2

我有兩個單獨的insert.php文件......我將如何在它們之間切換,具體取決於用戶是否已勾選複選框或單選按鈕。表單動作與複選框或單選按鈕之間的替代

例如,如果我的HTML設置像這樣....

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

,然後將用戶蜱複選框,這樣的形式需要改變y.php

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

這將如何完成?

回答

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> 
0

表單是一個標籤,它有屬性。實際上,Action是表單標籤的一個屬性。

當用戶選擇複選框,單選按鈕(通過javascript中的catch事件)時,您可以通過更改表單標籤的屬性來執行此操作。

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> 
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> 
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 
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>