2017-06-18 88 views
-1

我正在編程一個網站,有什麼功能是不用提的atm。我已經設置了一些jQuery代碼來使用ajax將數據通過表單插入到相關的數據庫中。之前,它應該檢查一些事情,比如一個輸入與我設置的數組的值相同,等等。在以下是我的代碼,真的無法找到,這是什麼hella是錯誤的。這個else if語句在jQuery中有什麼問題?

// AJAX, CREATE CATEGORY FUNCTION 
$('#create_category_form').submit(function(event){ 
    // VALID COLORS 
    var valid_colors = ["249,95,110,.72", // STD RED 
         "155,39,175,.72", // PURPLE 
         "102,58,182,.72", // DEEP PURPLE 
         "33,149,242,.72", // BLUE 
         "95,124,138,.72", // BLUE GREY 
         "0,149,135,.72", // TEAL 
         "64,147,67,.72", // GREEN 
         "254,86,34,.72", // DEEP ORANGE 
         "254,151,0,.72", // ORANGE 
         "120,84,71,.72"]; // BROWN 

    var colorchooser_value = $('#cat-color-value').val(); 

    if($('#category_name').val().length === 0) { 

     $('.category-name').css('background','#FCCED3').focus(); 
     return false; 

    } else if($('#cat-color-value').val().inArray(colorchooser_value, $valid_colors) == -1) { 

     $('.category-name').css('background','#FCCED3').focus(); 
     return false; 

    } else { 

     event.preventDefault(); 
     $.ajax({ 
      type: 'GET', 
      url: '/functions/create_category.php', 
      data: $(this).serialize(), 
      success: function(data){ 
       // REFRESH FORM 
       $('#create_category_form')[0].reset(); 
       // CLOSE OVERLAYS 
       $('#create-category').toggleClass('toggleOverlay'); 
       togglePageoverlay(); 
       // SHOW INFO 
       $('#info-banner').addClass('toggleInfo'); 
       $('#info-banner .inner .innertext').html('Category was successfully created!'); 
       hideInfobannerDelayed(); 
      } 
     }); 

    } 

}); 

我希望有人能幫助我。有必要檢查給定輸入的值是否與數組值中的一個相匹配。提前致謝。

+0

如果我刪除其他的如果部分,只是保持第一次檢查工作正常,但如果我添加第二個檢查顏色匹配的顏色在數組中,它將重新加載頁面並在瀏覽器窗口中顯示內容,而不向數據庫中插入任何內容 –

+0

當有人說他們的網站的功能不需要提及時,我總是發現它可疑。如果不需要提及,請不要提及它。否則,它只是聽起來像你正在做的事情,你不應該;) –

+0

如果你去瀏覽器的JavaScript控制檯,你可以順序運行'$('#cat-color-value')。val ().inArray(colorchooser_value,$ valid_colors)'所以你可以看到事情出錯的地方。請告訴我們你從哪裏開始獲得你不期望的價值。 –

回答

0

基於jQuery.inArray documentation 你應該使用jQuery.inArray這樣的:

$.inArray('value', array) // or jQuery.inArray('value', array) 

所以,你需要改變你的代碼如下:

else if ($.inArray(colorchooser_value, valid_colors) == -1) 
    // ... 

相關SO問題:jQuery.inArray(), how to use it right?

+0

謝謝你的作品。愛你 –

+0

很高興幫助。你可以將答案標記爲正確的答案,以幫助未來的讀者,愉快的編碼。 –

+0

已經完成~~ –