[英]Call Javascript Function Based on Radio Button Checked Value
我有一個表單可以根據用戶的帳戶設置(存儲在MySQL DB中並使用PHP拉出)設置默認值。 顯示表單時,它會提取相關的帳戶信息並填充表單(名字,姓氏,電子郵件,帳戶類型等)。
當用戶的帳戶類型為“ admin”時,我希望表單的其余部分被禁用,並選擇某些選項。 如果用戶的帳戶類型為“ admin”,因此默認情況下選中了“ edit_type_admin”單選按鈕(請參見下文),那么我將在加載頁面時調用下面的makeEditDisable()函數(無需單擊任何按鈕)。
現在,該表單顯示的帳戶類型如下:
Client or Admin: <br />
Client <input type="radio" name="edit_type" id="edit_type_client" value="client" <? if($selected_type == 'client') { echo 'checked'; } ?> onclick="makeEditEnable()" />
Admin <input type="radio" name="edit_type" id="edit_type_admin" value="admin" <? if($selected_type == 'admin') { echo 'checked'; } ?> onclick="makeEditDisable()" />
在兩個選項之間切換時,onclick的makeEditEnable()/ makeEditDisable()函數可以正常工作:
<script type="text/javascript">
function makeEditDisable(){
var x=document.getElementById("edit_access_begin")
x.disabled=true;
var x=document.getElementById("edit_access_expire")
x.disabled=true;
var x=document.getElementById("edit_project_access_yes")
x.checked=true;
var x=document.getElementById("edit_project_access_yes")
x.disabled=true;
var x=document.getElementById("edit_project_access_no")
x.disabled=true
}
function makeEditEnable(){
var x=document.getElementById("edit_access_begin")
x.disabled=false;
var x=document.getElementById("edit_access_expire")
x.disabled=false;
var x=document.getElementById("edit_project_access_yes")
x.disabled=false;
var x=document.getElementById("edit_project_access_no")
x.disabled=false
}</script>
將其添加到腳本或函數中,該腳本或函數在元素加載后以及當然在makeEditDisable()
加載后加載:
<? if($selected_type == 'admin') { echo 'makeEditDisable();'; } ?>
這應該調用您的函數。
您可以使用@Jeffman answer之類的PHP向頁面添加函數調用。 但是,請確保在腳本本身之后添加此內容,否則它將在客戶端上生成undefined function
錯誤。
或者您可以在頁面onload或onDOMReady事件中調用它。
我還想建議清理您的腳本http://jsfiddle.net/DHxvk/
var editableFields = ['edit_access_begin','edit_access_expire','edit_project_access_yes','edit_project_access_no'];
function makeEditDisable(){
for(var i=0; i<editableFields.length; i++)
document.getElementById(editableFields[i]).disabled=true;
}
function makeEditEnable(){
for(var i=0; i<editableFields.length; i++)
document.getElementById(editableFields[i]).disabled=false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.