2011-06-23 116 views
0

我有三個字段HTML表單:使用JavaScript修改形式

  • 狀態
  • 部,
  • 運輸方式

我要顯示或隱藏字段,取決於用戶的瀏覽器是否支持JavaScript。

我也試圖根據另一個的值設置一個字段。如果status設置爲DE,那麼我想將delivery method的值設置爲DE

我該如何去實現這個功能?

+0

請發佈您的HTML代碼表格 – BryanH

+3

StackOverflow不在這裏爲您完成工作;這是一項服務,當您遇到困難時可以協助您。我會從谷歌搜索「JavaScript教程」開始。 –

+0

要小心。 Java與Javascript不一樣,也不是它的一個子集。你的問題與Java無關,不應該被標記爲這樣。另外,你可能想展示你已經嘗試過的東西,因爲這看起來像你想讓其他人做你的工作。 – Dan

回答

2

您使用html標籤創建的字段不是?我不知道如何使用JAVA來禁用它們,但是您一定可以使用簡單的JavaScript語句。

說狀態字段的ID爲'fStatus'。 然後,您只需做到以下幾點:

<script type="text/javascript> 
document.getElementById('fStatus').type = 'hidden'; //to hide it and 
document.getElementById('fStatus').type = 'text'; //to un-hide it 
</script> 

我們執行時的狀態的改變,你需要修改HTML位執行的功能。就像這樣:

<input type="text" id="fStatus" onChange="validate()" /> 

,並執行相同的功能,當頁面加載,修飾身這樣:

<body onLoad="validate()"> 

適當的JavaScript函數是:

<script type="text/javascript"> 
function validate() 
{ 
    if(document.getElementById('fStatus').value == "DE") 
    { 
    document.getElementById('fDelivery').value = "DE"; // Assuming that the id of the delivery field is 'fDelivery' 
    } 
} 
</script> 

+1

你可能想要做'if(「DE」=== document.getElementById('fStatus')。value)' - 把常量放在首位意味着你永遠不會意外地將該值設置爲常量,並且使用三等於運算符('===')確保您比較類型和值,這是一個很好的習慣。 – BryanH

1

如果你想隱藏表單,如果JS不支持,爲什麼不默認隱藏它,然後用javascript顯示它?

的jQuery將使這很容易:

 
jQuery(function() { 
    $("form#formID").show(); 
}); 

jQuery的也可以很容易地檢查表單字段的值:

 
$("input#user_email").val() //=> '[email protected]' 

如果可以的話我會使用jQuery;)

+0

做他似乎想用POJS做什麼也很簡單。 – BryanH

1

用css默認隱藏它:

#formID { 
    display: none; 
} 

然後用JS就可以顯示出來:

document.getElementById('formID').style.display = 'block'; 
1

的總體思路將是一個onchange事件監聽器綁定到你的「狀態」欄:

document.getElementById("status").onchange = function() { 
    var currentValue = this.value; 
    document.getElementById("deliveryMethod").value = currentValue; 
} 

內部的功能,你得到的價值元素的變化與this.value。然後,您可以使用該值進行任何操作,例如將其分配給另一個字段的value