2014-01-13 48 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'); 

希望有所幫助。