2014-01-13 3 views
0

Я начинаю с JQuery, и у меня была эта проблема. Я хочу щелкнуть по кнопке send и оставить границу ввода красным цветом.JQuery addClass не работает

HTML КОД

<input type="text" placeholder="Put your name" id="name"/> 
<input type="submit" value="send" id="send"/> 

код Javascript

var name = document.getElementById('name'); 
$("#send").click(onClick); 

      function onClick() { 
       $("#name").addClass("error"); 
      } 

CSS СТИЛЬ

.error{ 
    border-color:red; 
} 

Если я поставил .addClass из функции щелчка работы, и я не знаю, где это проблема?

+1

'Uncaught ReferenceError: send is not defined': http://jsfiddle.net/4b7Ug/ Вы, вероятно, захотите удалить' onclick = "send" из HTML-кода. –

+0

Итак, вы не только отменили форматирование вопроса и усложнили его чтение, но и изменили код, и все ответы устарели, а люди потратили время. Почему вы изменили 'onClick' на' id'? Какой у вас код? –

+0

i correct that not changes in result –

ответ

1

Попробуйте использовать:

<input type="submit" value="send" id="send"/> 

Вы использовали onclick атрибут для вызова send fnction, который не существует. И вы, где запрашиваете #send, которые также не существуют. Я думаю, вы пропустили модификацию, когда вы написали код JS.

+1

Зачем OP использовать это? В чем проблема с кодом OP? Не просто отправляйте код, ** объясните ** проблему и решение (иначе вы играете в игру «различие»). –

+1

Он вызывал функцию «отправить», которой не существует, и ищет селектор «#send» без связанного с ним элемента id. – cubitouch

+1

Пожалуйста, отредактируйте ваш ответ и добавьте эту информацию. –

3

$("#send").click(onClick); ищет элемент с id=send; ваша кнопка имеет valuesend, что отличает. Добавить id="send" в свой <input type="submit" value="send" onclick="send"/>

The полный HTML код должен выглядеть следующим образом:

<input type="text" placeholder="Put your name" id="name"/> 
<input type="submit" value="send" id="send"/> 
+0

Вы правы, но он все еще не работает –

+0

@ user3192010 Это не работает из-за вызываемой функции «send». – cubitouch

+0

У меня есть этот

0
<input type="submit" value="send" id="send"/> 

ЯШ:

$(document).ready(function() { 
    $('#send').click(function(e) { 
     e.preventDefault(); 
     $('#name').addClass('error'); 
    }); 
}); 

при нажатии на кнопку отправки, вы отправляете форму, тот почему вы должны использовать e.preventDefault().

Вы также должны поместить ваш код JQuery внутри document.ready функции

+0

Не просто отправьте код, ** объясните ** проблему и решение. –

+0

@FelixKling мой плохой, я буду. обратите внимание, что он изменил часть ошибки на наш ответ –

+0

@FelixKling это сделает? или я могу улучшить это в некотором смысле? –

0

Я actualy не получил вашу потребность, но все я понимаю, в соответствии с этим, использовать этот метод

JQuery

$(function(){ 
    $("#myform").on('submit',function(){onClick();return false;}); 
}); 

function onClick() { 
    $("#name").addClass("error"); 
} 

HTML

<form id="myform"> 
    <input type="text" placeholder="Put your name" id="name"/> 
    <input type="submit" value="send" id="send"/> 
</form> 

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

0

Следующий код должен делать то, что вы пытаетесь достичь. Вот это рабочая js fiddle.

$("#send").on('click', function(e){ 
    $("#name").addClass("error"); 

    e.preventDefault(); 
}); 

Советы: почему вы используете родной Java-функции при использовании JQuery.

Вместо:

var name = document.getElementById('name'); 

вы можете просто сделать:

var name = $('#name'); 

Надежда, что помогает.

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