2015-09-06 52 views
0

我是Ajax和JQuery中的新成員,簡單的要求是顯示用戶使用number輸入字段選擇的值。if else在Ajax和Jquery中不起作用

我的代碼如下:

<input type="text" id="number" /> 
<span id="display"></span> 

<script type="text/javascript"> 
    $('#number').keyup(function(){ 
     if($('#number').text($(this).val())===1){ 
      $("#display").html("15,000"); 
     } 
     else if('#number').text($(this).val())==2){ 
      $("#display").html("28,000"); 
     } 
     else if('#number').text($(this).val())==3){ 
      $("#display").html("39,000"); 
     } 
     else if('#number').text($(this).val())==4){ 
      $("#display").html("48,000"); 
     } 
     else if('#number').text($(this).val())==5){ 
      $("#display").html("55,000"); 
     } 
    }); 
</script> 
+0

您需要爲您的應用程序顯示預期的和收到的文本,以及您試圖解決的問題。 –

+1

是的,我的確切要求是當用戶在輸入類型字段中輸入1時,15000顯示在內。同樣使用2,3,4,5 –

+0

完美,謝謝澄清。小調:請編輯其他信息,這些信息對於回答問題本身至關重要,而不是將其作爲評論發佈。我現在已經提高了效率,所以對其他用戶應該很清楚,不需要直接編輯它。 –

回答

2

它無關,與阿賈克斯。你的語法無效。

首先,你有中省略支架許多語句,如下面的語句:

else if('#number').text($(this).val())==2) 

通過增加在('#number')前支架的代碼是固定的。

if聲明的條件並不是我們所需要的。這樣的聲明檢查text()方法是否返回true。該方法設置匹配元素的文本內容。顯然,你不需要使用它。你所需要做的就是檢查輸入的值。這可以在val()方法的幫助下完成。

所以,你的代碼應該是這樣的:

$(function() {  
    $('#number').keyup(function(){ 
     if($(this).val() == 1){ 
      $("#display").html("15,000"); 
     } 
     else if($(this).val() == 2){ 
      $("#display").html("28,000"); 
     } 
     else if($(this).val() == 3){ 
      $("#display").html("39,000"); 
     } 
     else if($(this).val() == 4){ 
      $("#display").html("48,000"); 
     } 
     else if($(this).val() == 5){ 
      $("#display").html("55,000"); 
     } 
    }); 
}); 

小提琴:http://jsfiddle.net/82t86kqw/1/

正如評論已經提到的,這種類型的結構通常使用switch/case語句執行。有很多if/else不是最佳實踐。

+0

「您的語法無效」不能解釋*爲什麼*它無效。 –

+5

也許最好使用'switch'和'case'。 http://www.w3schools.com/js/js_switch.asp –

+0

@Maarten Bodewes,我已經更新了我的答案。謝謝你的評論 –