2014-09-18 2 views
-1

Доброго утра,Javascript Method Not Working - Галочка

Я с трудом firguring, почему этот следующий метод Javascript не работает.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 

<!--Author: Alejandro Deguzman Jr--> 

<html> 
<head> 

<title>Realtor Inquiry</title> 

<script type="text/javascript"> 

/* <![CDATA[ */ 
function termAgreed() { 
    if (document.getElementByID.checked == true) { 
     window.alert("Works!"); 
     } 
} 
/* ]]> */ 

</script> 

</head> 

<body> 
<form> 
<input type="checkbox" id="agree" value="Terms" type="checked" checked="unchecked">Agree with the Terms & Conditions<br> 
</form> 
</body> 
</html> 

Что я пытаюсь выполнить с помощью вышеуказанного кода, когда флажок установлен, появится подсказка. Я действительно знал, как искать этот конкретный ответ, который я искал.

+4

Где в этом коде вы вызов метод termAgreed()? –

+0

Я так называю этот метод в теле. Ну, по крайней мере, это то, где я хочу, чтобы метод активировался. Когда флажок установлен, появится приглашение. –

+1

Я ничего не вижу, связав флажок с этой функцией. Я предлагаю вам ознакомиться с событиями onclick. – JLRishe

ответ

0

1) Как было предложено выше, вам необходимо позвонить в свою функцию внутри вашего HTML. Используйте onchange() и вызовите функцию при замене флажка.

2) Вам нужно исправить синтаксис выбора элемента. его Id не ID, а также передать идентификатор element, который вы хотите выбрать.

function termAgreed() { 
 
if (document.getElementById("agree").checked == true) { 
 
window.alert("Works!"); 
 
} 
 
}
<input type="checkbox" id="agree" onchange="termAgreed()" value="Terms" checked="unchecked">Agree with the Terms & Conditions

+0

Удивительно, делал именно то, что я пытался достичь. –

+0

Пожалуйста, отметьте его ответом. –

0

Во-первых, вы не используете getElementById правильно. Вам нужно передать элемент, который вы хотите найти. Таким образом getElementById («согласен»). И, как уже отмечали другие комментарии, вы не называете «termAgreed» в своем коде.

+0

Я просто понял это. Я забыл поставить идентификатор флажка. Как мне обратиться к методу в моей форме? Должен ли я использовать onClick? Я просто хочу, чтобы метод активировался после проверки флажка. –

+0

Рассмотрите возможность использования jQuery. Создайте событие click для этого флажка, посмотрите, проверено ли оно, затем выполните свое предупреждение на основе этой проверки. Вот скрипка -> http://jsfiddle.net/5o6h4g8o/ – killQuotes

+0

Прошу прощения, но я еще не знаком с JQuery. Я все еще пытаюсь обернуть голову вокруг Javascript. –

0

Я изменил свой termAgreed немного. Обратите внимание, что querySelector не доступен в older browsers. Я добавил часть в конце добавить change события флажка:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 

<!--Author: Alejandro Deguzman Jr--> 

<html> 
<head> 

<title>Realtor Inquiry</title> 

<script type="text/javascript"> 

/* <![CDATA[ */ 
function termAgreed() { 
    if (document.querySelector('#agree').checked) { 
     window.alert("Works!"); 
     } 
} 
/* ]]> */ 

</script> 

</head> 

<body> 
<form> 
<input type="checkbox" id="agree" value="Terms" type="checked" checked="unchecked">Agree with the Terms & Conditions<br> 
</form> 
<script type="text/javascript"> 
document.querySelector('#agree').addEventListener('change', termAgreed); 
</script> 
</body> 
</html> 
+0

Я вижу, это, по-видимому, более продвинутый способ использования обработчиков событий? Я еще не знаком с JQuery. –

+0

Нет jQuery здесь. Хотя я рекомендую изучить его, если вы начнете использовать больше JavaScript. Хотя, возможно, не подходит для вашего использования, добавление обработчиков событий через JavaScript (то, что я сделал) более удобно, поскольку вы добавляете больше JavaScript на свою страницу. Это также общепринято как [передовая практика] (http://stackoverflow.com/questions/15792498/is-it-bad-practice-to-use-inline-event-handlers-in-html) (и [здесь ] (http://www.sitepoint.com/web-foundations/onclick-html-attribute/), см. примечание после совместимости внизу, например). – user4040648