簡體   English   中英

基於單選按鈕檢查值調用Javascript函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM