2013-03-12 131 views
4

首先,是否可以直接在帶有onclick屬性的html中編寫if/else語句?如果是這樣,爲什麼我的代碼不工作?在OnClick上使用「if/else」

所以這是一個按鈕。 「Calc.Input.value」是指文本輸入,如果該字段爲0或空白,我想顯示一條錯誤消息。在其他所有情況下,我希望可以看到其他一些事情發生。但這並不相關,因爲之前「else」之後的所有內容都工作得很好。

<INPUT TYPE="button" NAME="drop" id="dropbutton" style="background-color:#D1E8D5;" VALUE=" 
Släpp ankare " OnClick="if ("Calc.Input.value == ''" || "Calc.Input.value == '0'") 
{window.alert("Please enter a number");} else 
{document.getElementById('dropbutton').value=' Justera 
längd ';document.getElementById('length').innerHTML = 
Calc.Input.value;document.getElementById('dropbutton').style.cssText = 'background- 
color:#FFF6B3;';}"> 
+3

Oy公司,即使這會工作(它沒有),看起來不太漂亮。 :/你爲什麼不在'onclick'中調用函數並在函數中執行條件表達式? – Lix 2013-03-12 19:37:56

+0

突如其來的灼傷了我的眼睛!這不是應該寫好的JavaScript – 2013-03-12 19:39:19

+4

你打破了互聯網 – 2013-03-12 19:40:20

回答

15

只是不要把它放在onclick屬性。

使用

<INPUT TYPE="button" NAME="drop" id="dropbutton" style="background-color:#D1E8D5;" VALUE="Släpp ankare "> 
<script> 
document.getElementById('dropbutton').onclick = function() { 
    if (Calc.Input.value == '' || Calc.Input.value == '0') { 
     window.alert("Please enter a number"); 
    } else { 
     document.getElementById('dropbutton').value=' Justera längd '; 
     document.getElementById('length').innerHTML = Calc.Input.value; 
     document.getElementById('dropbutton').style.backgroundColor = '#FFF6B3'; 
    } 
    return false; 
} 
</script> 
+1

'if'語句中的額外引號顯然不應該在那裏。 – 2013-03-12 19:41:11

+1

我甚至建議在功能範圍內留下'reurn false'以及... – Lix 2013-03-12 19:41:18

+0

@Lix,對,我重新構建了我的答案。 – kay 2013-03-12 19:47:57

4

你的代碼是不工作的原因是因爲你需要逃避你"引號,否則會被解釋爲HTML屬性符號。

我同意其他人的觀點,在您的HTML中內嵌JavaScript代碼是一種不好的做法。

2

sweetamylase的回答是最好的,但你也可以考慮:

如果您的onclick =分配雙引號括起來(的onclick =「...」)然後嘗試使用內唯一的單引號字符那些雙引號(反之亦然)。

當您需要在動態插入元素時指定onclick事件並且具有單獨的腳本函數並不是一個很好的選擇時,這可以使事情更輕鬆。

例子:

<button onclick="alert('Do this'+' and that')">Press This</button> 
1

嗯但如何對這樣的事情:

<a href="#" onclick="if (a_function_to_get_language() == 'en') { 
    alert('Some message'); 
} 
else { 
    alert('Some message in a different language'); 
}">Action</a> 
0

  • 警報的導航頁面上
  •   <script> 
           function myFunction() { 
          alert("You Are Not Signed In!"); 
            } 
           </script> 
    
    +1

    請提供一些你的代碼的解釋.. – 2017-04-11 12:26:07