2013-03-12 6 views
4

Прежде всего, возможно ли даже писать инструкции if/else непосредственно в html с атрибутом onclick? И если да, то почему мой код не работает?Использование «if/else» с OnClick

Так что это кнопка. «Calc.Input.value» относится к текстовому вводу, и я хочу отобразить сообщение об ошибке, если это поле 0 или пустое. Во всех остальных случаях я хочу, чтобы некоторые другие вещи случались, как вы можете видеть. Это не актуально, так как все, что «еще» отлично работало раньше.

<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

+0

Навязчивость сжигает мои глаза !!! Это НЕ, как должен быть написан хороший JavaScript –

+4

Вы нарушили интернет –

ответ

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', очевидно, не должны быть там. –

+1

Я бы зашел так далеко, что предложил оставить «reurn false» внутри области видимости функции ... – Lix

+0

@ Lix, правильно, я немного структурировал свой ответ. – kay

4

Причина ваш код не работает, потому что вам нужно, чтобы избежать вашей " кавычки, в противном случае она будет интерпретироваться как символ атрибута HTML.

И я согласен с другими, это плохая практика, чтобы написать свой встроенный JavaScript внутри HTML. ответ

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

    Просьба дать некоторое объяснение вашего кода .. –

    Смежные вопросы