2017-02-09 79 views
1

自從我最近開始使用js以來,我的另一個問題一直在困擾着我的心靈,以至於我的應用程序會很好地響應,但是我已經在此處使用另一個塊。JavaScript函數激活問題

正如標題所說,我對特定的代碼有嚴重的問題。 這裏是它的總結形式

window.onload = onLoadFunctions; 
 

 
function onLoadFunctions(){ 
 
    var show3rdDiv = document.getElementById('show3rdDiv'); 
 
    var editbtnStart = document.getElementById('editbtnDiv'); 
 
    var editbtnLog = 0; 
 
    
 
    editbtnStart.style.display = 'none'; 
 
    
 
    show3rdDiv.onclick = function(){ 
 
    document.getElementById('3rdDiv')className = ""; 
 
    if (editbtnLog == 1) { 
 
    editbtnStart.style.display = 'block'; 
 
    } 
 
    else { 
 
    editbtnStart.style.display = 'none'; 
 
    } 
 
    } 
 
    } 
 

 
function submitclick(){ 
 
    var uname = document.getElementById("login").elements[0].value; 
 
    var upass = document.getElementById("login").elements[1].value; 
 
    var preuname = "john"; 
 
    var preupass = "doe"; 
 
if (preuname == uname && preupass == upass) { 
 
    editbtnLog = 1; 
 
    document.getElementById('2ndDiv')className = ""; 
 
    alert("The user " + preuname + " was successfully loged in and editbtnLog wass set to: " + editbtnLog); 
 
    } 
 
    else { 
 
    alert("Wrong Username or password!"); 
 
    } 
 
}
.hidden { 
 
    display:none; 
 
    }
<div id="login"> 
 
    <form id="login"> 
 
    Username<input type"text" placeholder="name"> 
 
    Passowrd<input type"password" placeholder="password"> 
 
    <input type="submit" value="Submit" onclick="submitclick()"> 
 
    </form> 
 
</div> 
 
<div id="2ndDiv" class="hidden"> 
 
    <input type="button" id="show3rdDiv" value="Continue"> 
 
</div> 
 
<div id="3rdDiv" class="hidden"> 
 
<div id="editbtnDiv"> 
 
     <input type="button" id="editbtn" value="Edit"/> 
 
</div> 
 
</div>
不管我做什麼 editbtn不會出現或消失的方式,需要的東西應該做的對象。如果你注意到我用它的div而不是?如果我只是使用輸入按鈕本身,它永遠不會出現。

有人請告訴我這是錯誤的方式有多少種?

我嘗試了很多樣式,並且我不想使用onclick=""(參考我非常討厭的提交按鈕),因爲我的html說因爲使用它而不好。我應該在這裏做什麼?它已經像昨天一樣煩人了。 我錯過了什麼?我是否宣佈這個錯誤?我已經在這個項目上散發了珍貴的眉毛。 < = [ 或者,也許我應該堅持onclick=""的事情,當涉及到顯示編輯btn?

回答

0

的「id」屬性是唯一

window.onload = onLoadFunctions; 
 

 
function onLoadFunctions(){ 
 
    var show3rdDiv = document.getElementById('show3rdDiv'); 
 
    var editbtnStart = document.getElementById('editbtnDiv'); 
 
    var editbtnLog = 0; 
 
    
 
    editbtnStart.style.display = 'none'; 
 
    
 
    show3rdDiv.onclick = function(){ 
 
    document.getElementById('3rdDiv').className = "";//error 
 
    if (editbtnLog == 1) { 
 
    editbtnStart.style.display = 'block'; 
 
    }else { 
 
    editbtnStart.style.display = 'none'; 
 
    } 
 
    } 
 
    } 
 

 
    function submitclick(){ 
 
     var uname = document.getElementById("login").elements[0].value; 
 
     var upass = document.getElementById("login").elements[1].value; 
 
     var preuname = "john"; 
 
     var preupass = "doe"; 
 
    if (preuname == uname && preupass == upass) { 
 
     editbtnLog = 1; 
 
     document.getElementById('2ndDiv').className = "";//error 
 
     alert("The user " + preuname + " was successfully loged in and editbtnLog wass set to: " + editbtnLog); 
 
     } 
 
     else { 
 
     alert("Wrong Username or password!"); 
 
     } 
 
    }
<div id="login1"> 
 
     <form id="login"> 
 
     Username<input type="text" placeholder="name"> 
 
     Passowrd<input type="password" placeholder="password"> 
 
     <input type="button" value="Submit" onclick="submitclick()"> 
 
     </form> 
 
</div> 
 
    <div id="2ndDiv" class="hidden"> 
 
     <input type="button" id="show3rdDiv" value="Continue"> 
 
    </div> 
 
    <div id="3rdDiv" class="hidden"> 
 
    <div id="editbtnDiv"> 
 
      <input type="button" id="editbtn" value="Edit"/> 
 
    </div> 
 
    </div>

+0

我沒有得到你......都:/ – Arkonsol

0

請檢查您的天氣腳本是調用正確或not.Check在其中定義腳本行。

+0

我檢查了十幾次,但我已經想通了莫名其妙:/ – Arkonsol

0

就在幾分鐘前...(注:這是令人尷尬)我理解了它。 (這不是在上述概括的代碼所示) 我所做的更改,如登錄按鈕,如果你是在和變化,如果你在它的註銷表單單擊它如此成功地重新登錄,輪流進入登出它的HTML值的元素有一個循環。按鈕的值發生了變化,所以我嘗試了一下,並意識到我可以以某種方式將它們綁定在一起。所以我做了。通過聲明onclick=""show3rdDiv按鈕和啓動類的class="hidden"editbtnDiv,並指出,如果登錄按鈕具有的「登陸」的值,然後將它保持隱藏的類,但如果它有註銷的值,那麼它會刪除該班級。 有時我很愚蠢。 :/