2015-08-28 2 views
1
<select name="product"> 
<option value="1">A</option> 
<option value="2">B</option> 
<option value="3">C</option> 
</select> 

<table id="ListProduct"> 
<tr data-id="1"><td>A</td></tr> 
<tr data-id="4"><td>D</td></tr> 
<tr data-id="5"><td>E</td></tr> 
<tr data-id="6"><td>F</td></tr> 
<tr data-id="7"><td>G</td></tr> 
</table> 

И мой JavaScript:Как проверить значение существует в использовании таблицы Javascript

$('select[name=product]').on('change', function(){ 
    var pid = $('select[name=product]').val(); 
    var table = $('#ListProduct'); 
    var check_value = $(table).find("tr").data('id').eq(pid); 
    if(check_value) alert("ID exist") else alert("Not exist"); 
}); 

Когда я выбираю значение = 1, принести ошибку. Как это исправить?

ответ

0

попробовать это: http://jsfiddle.net/leojavier/1bnkfb06/

$('select[name=product]').on('change', function(){ 
    var pid = $(this).val(); 
    var table = $('#ListProduct'); 
    var check_value = $(table).find("tr").data('id'); 

    if(check_value == pid) { 
     console.log("ID exist") 
    } 
     else { 
      console.log("Not exist"); 
     } 
}); 
0

Добавить новую опцию для того, чтобы ID для А также можно найти

$('select[name=product]').on('change', function(){ 
 
    var pid = $(this).val(); 
 
    var table = $('#ListProduct'); 
 
    var check_value = $(table).find("tr").data('id'); 
 
    (check_value == pid)?alert('ID exists'):alert('ID does not exist');//check if id exists 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="product"> 
 
    <option>select</option> 
 
    <option value="1">A</option> 
 
    <option value="2">B</option> 
 
    <option value="3">C</option> 
 
</select> 
 

 
<table id="ListProduct"> 
 
<tr data-id="1"><td>A</td></tr> 
 
<tr data-id="4"><td>D</td></tr> 
 
<tr data-id="5"><td>E</td></tr> 
 
<tr data-id="6"><td>F</td></tr> 
 
<tr data-id="7"><td>G</td></tr> 
 
</table>

0

Вы получаете сообщение об ошибке, как .data('id') в ваш код возвращает целое число, которое не имеет метода .eq. .eq - это метод объекта jQuery.

Также обратите внимание, что .data как getter возвращает значение первого элемента в коллекции. Вы должны либо итерации по коллекции tr и фильтровать совпадающие элементы или использовать мощность двигателя селектора JQuery:

$('select[name=product]').on('change', function() { 
    var $tr = $('#ListProduct tr[data-id="'+ this.value +'"]'); 

    if ($tr.length) { 
     alert("ID exist"); 
    } else { 
     alert("Not exist"); 
    } 
}); 
0

Вы должны проверить погоду стоимости продукта соответствует идентификатору данных в listproduct как это. http://jsfiddle.net/38e2h5ao/

$('select[name=product]').on('change', function() { 
    var pid = $('select[name=product]').val(); 
    var table = $('#ListProduct'); 
    var exist; 
    $(table).find("tr").each(function() { 
     var check_value = $(this).data('id'); 
     if (check_value == pid) { 
      exist = true; 
     } 
    }); 

    if (exist) alert("ID exist"); 
    else alert("Not exist"); 
}); 
Смежные вопросы