2014-01-13 49 views
0

我从Jquery开始,我遇到了这个问题。我想单击发送按钮并将输入的边框以红色显示。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/您可能想从HTML代码中删除'onclick =“send”'。 –

+0

因此,您不仅恢复了问题的格式,并且难以再次阅读,您的代码更改使所有答案都过时,人们浪费了时间。你为什么把'onClick'改为'id'?你实际上有什么代码? –

+0

我改正了结果没有改变 –

回答

1

尝试使用:

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

你用onclick属性调用哪个不存在send fnction。 而你在哪里查询#send也不存在的id。我想你在写JS代码的时候错过了一个修改。

+1

OP为什么要用这个? OP的代码有什么问题?不要只是发布代码,**解释**问题和解决方案(否则你正在玩“不同点”游戏)。 –

+1

他正在调用一个不存在的“发送”函数,并寻找一个没有任何id元素链接的“#send”选择器。 – cubitouch

+1

请[编辑]您的答案并添加此信息。 –

3

$("#send").click(onClick);寻找与id=send;你的按钮有valuesend,这是不同的。添加id="send"<input type="submit" value="send" onclick="send"/>

完整的HTML代码应该是这样的:

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

你是对的,但它仍然不能正常工作 –

+0

@ user3192010由于被称为“发送”功能,这不起作用。 – cubitouch

+0

我有这个

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

JS:

$(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(); 
}); 

提示:你为什么要使用本机使用jQuery时,JavaScript函数。

相反的:

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

,你可以简单地做:

var name = $('#name'); 

希望有所帮助。