2016-03-07 99 views
0

我有一個表單,我希望根據基於狀態表單域選擇的內容重定向到不同的頁面。基於表單域的不同頁面

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

    <input type="text" name="_FirstName" required/> 
    <input type="text" name="_LastName" required/> 
    <input type="tel" id="phone" name="_Phone" required/> 
    <input type="email" name="Email" required/> 

    <select name="_State" id="state" required> 
    <option value="AL">Alabama</option> 
    <option value="AK">Alaska</option> 
    <option value="AZ">Arizona</option> 
    <option value="AR">Arkansas</option> 
    <option value="CA">California</option> 
    <option value="CO">Colorado</option> 
    <option value="CT">Connecticut</option> 
    <option value="DE">Delaware</option> 
    <option value="DC">District of Columbia</option> 
    <option value="FL">Florida</option> 
    </select> 

    <input id="submit" type="submit"> 

</form> 

這是我使用的基於關鍵字this的JavaScript代碼。問題是我不斷直接進入'capture.php'頁面,不管我選擇什麼狀態選項。

<script type="text/javascript"> 
function submit { 
    if(document.getElementById('state').value == 'AZ' || 
    document.getElementById('state').value == 'AR' || 
    document.getElementById('state').value == 'CA') || 
    document.getElementById('state').value == 'CO') || 
    document.getElementById('state').value == 'CT') 
{ 
window.location.href == "warranty.php"; 
} 
else 
{ 
window.location.href == "capture.php"; 
} 
</script> 

任何想法?謝謝!

編輯:JavaScript代碼是否應該在html頁面的標題中?

+0

形式的行動是capture.php。所以如果你使用輸入提交,它會去capture.php –

+0

函數提交{...語法錯誤。 –

+0

你想在哪裏處理狀態值並進行重定向?進入包含表單本身的頁面或capture.php頁面中? – mitkosoft

回答

0

您的submit()功能的一些語法錯誤:

  • 你缺少()您的功能。
  • 有一些額外的括號'CO')'CA')
  • 使用單一=爲window.location的

標誌修改功能:

<script type="text/javascript"> 
function submit() { 
    if(document.getElementById('state').value == 'AZ' 
    || document.getElementById('state').value == 'AR' 
    || document.getElementById('state').value == 'CA' 
    || document.getElementById('state').value == 'CO' 
    || document.getElementById('state').value == 'CT') 
    { 
    window.location.href = "warranty.php"; 
    } 
    else 
    { 
    window.location.href = "capture.php"; 
    } 
} 
</script> 

側面說明:

您還可以使用window.open像:

window.open('capture.php'); 
0

你有幾個錯誤在你的代碼e.g:==用於comparaison而不是賦值

  1. 兩個等號。

  2. select標籤是不是自閉標記,以便您在前人的精力到底刪除/:在你的病情

    <select name="_State" id="state" required/> 
    _________________________________________^ 
    
  3. 一些額外的parenthese (

  4. 函數聲明中缺少括號。

然後我看不到你在哪裏打電話submit()


submit事件IMO增加會更好,點擊提交按鈕改變動作,然後提交表單編程後:

$('form').on('submit', function(e){ 

    if(document.getElementById('state').value == 'AZ' || 
     document.getElementById('state').value == 'AR' || 
     document.getElementById('state').value == 'CA' || 
     document.getElementById('state').value == 'CO' || 
     document.getElementById('state').value == 'CT') 
    { 
     $('form').prop('action', "warranty.php"); 
    } 
    else 
    { 
    $('form').prop('action', "capture.php"); 
    } 

    return true; 
}); 

希望這有助於。

0

問題是沒有任何關聯您的表單提交到您的JavaScript函數。因此,當您驗證表單時,它會直接轉到「action」屬性中提供的地址。

簡單的解決方案

改變你的按鈕,這個的標記,因此點擊將鏈接到函數調用:

<input id="submit" type="submit" onclick="submit()"> 

使用jQuery:

負荷的jQuery與您的網頁,並添加一個id到你的形式是這樣的:

<form id="myform" action="capture.php" method="post"> 

文檔中添加以下代碼:

$(document).ready(function() { 
    $('#myform').submit(function(e) { 
     e.preventDefault(); // this prevent the form from going to capture.php 
     submit(); 
     return false; 
    }); 
}); 
相關問題