2013-05-10 125 views
1

UPDATE允許使用Javascript

提交的引導基於類別名稱按鈕我創建了一個解決此問題。我只是將hide添加到密碼字段中,然後在電子郵件有效後讓腳本顯示它們。然後我做了它,一旦有效的密碼,提交按鈕被啓用。我會更新我下面的代碼,以反映該解決方案



原來的問題

我創建使用引導框架的形式。我有兩個腳本(一個用於檢查電子郵件和另一個用於檢查密碼)。

查看此腳本正在操作中:http://www.green-panda.com/adminarea/temp.php然後單擊添加新用戶。注意:我將在找到解決方案並將其發佈到此處後刪除此頁面。

電子郵件的腳本

    <script> 
        function validateForm() 
        { 
        var x=document.forms["addUser"]["email"].value; 
        var atpos=x.indexOf("@"); 
        var dotpos=x.lastIndexOf("."); 
        if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) 
         { 
         document.getElementById("emaildiv").className +=" error"; 
         document.getElementById("passdiv1").className =" control-group hide"; 
         document.getElementById("passdiv2").className =" control-group hide"; 
         document.getElementById("emailhelp").innerHTML =" Must be a valid email address"; 
         } 
        else{ 
         document.getElementById("emaildiv").className =" control-group success"; 
         document.getElementById("passdiv1").className =" control-group"; 
         document.getElementById("passdiv2").className =" control-group"; 
         document.getElementById("emailhelp").innerHTML =" Looks Good!"; 
        } 
        } 
       </script> 

密碼腳本

   <script> 
        function validatePwd() { 
         var invalid = " "; // Invalid character is a space 
         var minLength = 8; // Minimum length 
         var maxLength = 16; //Maximum Length 
         var pw1 = document.addUser.password.value; 
         var pw2 = document.addUser.password2.value; 
         // check for a value in both fields. 
         if (pw1 == '' || pw2 == '') 
         { 
          document.getElementById("passdiv1").className +=" error"; 
          document.getElementById("passdiv2").className +=" error"; 
          document.getElementById("passhelp").innerHTML =" Type your password twice."; 
          return false; 
         } 
         // check for minimum length 
         if (document.addUser.password.value.length < minLength) 
         { 
          document.getElementById("passdiv1").className +=" error"; 
          document.getElementById("passdiv2").className +=" error"; 
          document.getElementById("passhelp").innerHTML ="Your password must be 8-16 characters long."; 
          return false; 
         } 
         // check for maximum length 
         if (document.addUser.password.value.length > maxLength) 
         { 
          document.getElementById("passdiv1").className +=" error"; 
          document.getElementById("passdiv2").className +=" error"; 
          document.getElementById("passhelp").innerHTML ="Your password must be 8-16 characters long."; 
          return false; 
         } 
         // check for spaces 
         if (document.addUser.password.value.indexOf(invalid) > -1) 
         { 
          document.getElementById("passdiv1").className +=" error"; 
          document.getElementById("passdiv2").className +=" error"; 
          document.getElementById("passhelp").innerHTML ="Sorry, spaces are not allowed."; 
          return false; 
         } 
         else { 
           if (pw1 != pw2) 
           { 
            document.getElementById("passdiv1").className +=" error"; 
            document.getElementById("passdiv2").className +=" error"; 
            document.getElementById("passhelp").innerHTML ="Passwords must match."; 
            return false; 
           } 
         else { 
           document.getElementById("passdiv1").className =" control-group success"; 
           document.getElementById("passdiv2").className =" control-group success"; 
           document.getElementById("submit").className ="btn btn-primary"; 
           document.getElementById("passhelp").innerHTML ="Looks Good!."; 
           return true; 
          } 
         } 
        } 
       </script> 

正如你可以在腳本中看到,一旦需求得到滿足,在這兩種情況下的類都改爲「控制組成功「默認情況下,我的提交按鈕有一個」禁用「類,導致按鈕不可點擊。我試圖創建一個腳本,它自動檢查emaildivpassdiv2的類名,並且一旦兩個類都設置成功,則將按鈕類從btn btn-primary disabled更改爲btn btn-primary

這是我迄今爲止,並在所有

在更新後的溶液中不會工作,我不再使用下面的腳本。

<script> 
function submit() { 
    var x = document.getElementById("emaildiv").className; 
    var y = document.getElementById("passdiv2").className; 
    if (x == "control-group success" || y == "control-group success") 
    { 
     document.getElementById("submit").className ="btn btn-primary"; 
    } 
    else 
    { 
     document.getElementById("submit").className ="btn btn-primary disabled"; 
    } 
} 
</script> 

我一直在努力使這項工作,因爲在午餐前,現在我有但沒有成功返回。請儘可能以任何方式提供幫助!謝謝!

更新:是不是因爲沒有什麼叫function submit()?如果是的話,我會如何使它自動做到這一點?

回答

0

您的代碼包含語法錯誤。 你必須引用提交的ID。

function submit() { 
    var x = document.getElementById("emaildiv").className; 
    var y = document.getElementById("passdiv2").className; 
    if (x == "control-group success" || y == "control-group success") 
    { 
     document.getElementById("submit").className ="btn btn-primary"; 
    } 
    else 
    { 
     document.getElementById("submit").className ="btn btn-primary disabled"; 
    } 
} 

我還沒有測試過,如果你提供簡單的jsfiddle,那將是非常棒的。

+0

你可以使用你所有的代碼在jsfiddle.net上創建一個jsfiddle嗎? – sbspk 2013-05-10 19:51:32

+0

那麼它必須讓所有的引導腳本和CSS鏈接到它的工作。但是我可以給這個程序一個鏈接:http://www.green-panda.com/adminarea/temp.php,然後點擊「添加新用戶」按鈕,它應該提供這個表單。 – user2371301 2013-05-10 19:54:29

+0

你甚至不需要禁用按鈕。請使用這篇文章來了解基本的表單驗證http://www.tutorialspoint.com/javascript/javascript_form_validations.htm – sbspk 2013-05-10 20:04:23