2013-02-12 35 views
0

我非常喜歡HTML和JavaScript,所以尋求一些幫助。 我有一個表單,它有一個提交按鈕。當我點擊提交按鈕時,按鈕的名稱將會改變,它會執行一些操作。當我再次點擊按鈕時,我必須做不同的執行。這是我的代碼。HTML中的同一按鈕中的多個功能

HTML:

 <form name="myform" method="post" onsubmit="return false"> 

     <input type="submit" id="reschedule" value="reschedule" onclick="changeContent()"/> 

JavaScript是:

 function changeContent(ref){ 
     alert(id) 
     document.getElementById("reschedule").value="Submit" 
     var editables = document.getElementsByClassName('editableText'); 
     for (var i = 1; i < editables.length; i++) { 
      var newstate = !editables[i].isContentEditable; 
      editables[i].contentEditable = newstate; 
      editables[i].bgcolor='#FF0000' 
     } 
     if (document.getElementById("Submit").click) { 
      alert("submit") 
     } 
    } 

所以,當我點擊重新安排按鈕名稱將更改爲提交。現在當我需要點擊提交功能時,我需要做一些操作。我怎樣才能做到這一點。

+0

'submit'按鈕,頁面會得到刷新,它不會滿足您的要求。嘗試用'按鈕替換' – DON 2013-02-12 07:11:24

+0

在你的函數中添加if條件。 – 2013-02-12 07:14:22

+0

我認爲你可以使用點擊計數,並在該使用條件的基礎上。 – Kingk 2013-02-12 07:22:20

回答

1

你應該在函數結束時return false;這樣你的頁面不會刷新,你可以在同一頁面上做任何事情。使用以下javascript代碼

 function changeContent(ref){ 
     alert(id) 
     document.getElementById("reschedule").value="Submit" 
     var editables = document.getElementsByClassName('editableText'); 
     for (var i = 1; i < editables.length; i++) { 
      var newstate = !editables[i].isContentEditable; 
      editables[i].contentEditable = newstate; 
      editables[i].bgcolor='#FF0000' 
     } 
     if (document.getElementById("Submit").click) { 
      alert("submit") 
     } 
     return false; 
    } 
0

我想到的第一個解決方案是檢查按鈕的名稱並根據該值執行一些操作。例如:

function changeContent(ref){ 
    if(document.getElementById("reschedule").value == "reschedule") { 
     alert(id) 
     document.getElementById("reschedule").value="Submit" 
     var editables = document.getElementsByClassName('editableText'); 
     for (var i = 1; i < editables.length; i++) { 
      var newstate = !editables[i].isContentEditable; 
      editables[i].contentEditable = newstate; 
      editables[i].bgcolor='#FF0000' 
     } 
    } 
    else if(document.getElementById("reschedule").value == "Submit") { 
     // do something else 
    } 
} 

這是你在找什麼?

+0

是的,我改變了按鈕,它工作完美..感謝您的幫助 – user2058205 2013-02-12 07:19:13

+0

我使用的按鈕。但如果我使用按鈕,我將如何提交表單。我必須改變基於點擊按鈕的document.form.action。我知道它有點棘手,但... – user2058205 2013-02-12 08:17:39

0

嘗試使用按鈕,一旦你提交通過點擊提交按鈕,頁面會用你的行動刷新一起嘗試使用按鈕

更新您的按鈕

<input type="button" id="reschedule" value="reschedule" onclick="changeContent()"/> 

然後像這樣改變你的java腳本功能

function changeContent(ref){ 
     alert(id) 
     document.getElementById("reschedule").value="Submit" 
     var editables = document.getElementsByClassName('editableText'); 
     for (var i = 1; i < editables.length; i++) { 
      var newstate = !editables[i].isContentEditable; 
      editables[i].contentEditable = newstate; 
      editables[i].bgcolor='#FF0000' 
     } 

     if (document.getElementById("Submit").click) { 
      alert("submit"); 
      return true; 
     } 
     return false; 
    } 

更新相間螺旋纏繞製成:

可以使用按鈕打電話給你的行動像這樣的javascript函數:

document.your_form_name.action = "your_action_name"; 
document.your_form_name.submit(); 
+0

我正在使用按鈕。但如果我使用按鈕,我將如何提交表單。我必須改變基於點擊按鈕的document.form.action。我知道它有點棘手,但... – user2058205 2013-02-12 08:17:19

+0

查看更新的部分 – 2013-02-12 08:40:31

0

應該是:

function changeContent() 
{ 
    document.getElementById("reschedule").value = "Submit"; 
    var editables = document.getElementsByClassName('editableText'); 
    for (var i = 1; i < editables.length; i++) 
    { 
     var newstate = !editables[i].isContentEditable; 
     editables[i].contentEditable = newstate; 
     editables[i].bgcolor='#FF0000' 
    } 
    if (document.getElementById("reschedule").value = "Submit") 
    { 
     document.getElementById("reschedule").onclick=function(){ 
      alert('Hello this submit button click event'); 
     }; 
    } 
} 
當您使用
+0

我相信你想在if語句中進行比較,而不是分配。 – 2013-02-12 08:42:37