У меня есть этот js для добавления полей, проверки пустых полей и предотвращения дублирования значений в строках. Но это работает только для проверки пустых полей. Есть ли в этом коде несоответствие при размещении или что-то еще? Спасибо.

   <script>
    count4 = 1;
    function appendCertification(){
        var certification = $('#certification').val(); 
        var skillSector = $('#skillSector').val();
        var issueDate = $('#issueDate').val();
        var expirDdate = $('#expiryDate').val();

        if(cerfication == "" || skillSector == "" || issueDate == "" || expiryDate == "") {
             alert("please fill minimum 1 row");
             return false;
         }
         for (var i = 0, row; row = document.getElementById("#certificationTable").rows[i]; i++) {
            var fields = new Array();
            for (var j = 0, col; col = row.cells[j]; j++) {
                fields[j] = col.innerHTML;
            }
            if(certification == fields[0] && skillSector == fields[1] && issuedate == fields[2] && expireddate == fields[3]) {
                alert("Duplicate row");
                return false;
                }
         }
        var field = "<tr><td>"+certification+"</td><td>"+skillSector+"</td><td>"+issueDate+"</td><td>"+expiryDate+"</td><input type='hidden' name='certificationVal[]' value='"+certification+"'><input type='hidden' name='sectorSkillVal[]' value='"+sectorSkill+"'><input type='hidden' name='issueDateVal[]' value='"+issueDate+"'><input type='hidden' name='expiryDateVal[]' value='"+expiryDate+"'></tr>";
        $("#certificationTable tbody").append(field);
        count++;
    };

    function clearform(){
        $("#certificationTable tbody").html("");
    };
  </script>
0
user3279136 28 Фев 2014 в 12:13
Возможная ошибка при вводе issuedate вместо issueDate в if(certification == fields[0] && ... в вашем вопросе, а также в expireddate? Или это тоже в вашем реальном коде?
 – 
alpakyol
28 Фев 2014 в 12:23
Мы не знаем о вашей странице, html-части.
 – 
Kuzgun
28 Фев 2014 в 12:23
Все дело в опечатках, проверьте этот jsfiddle.net/6Zx5V Мне не нравится -1 ваш вопрос, но вы должны проверить свой код с большей точностью
 – 
user757095
28 Фев 2014 в 12:31
Здравствуйте, html используйте текст ввода и выберите вариант, активируйте использование onclick на кнопке @Kuzgun,
 – 
user3279136
28 Фев 2014 в 12:37
Да, можно просто игнорировать код, потому что фактическая переменная не на английском языке @ user3280126
 – 
user3279136
28 Фев 2014 в 12:40

1 ответ

Лучший ответ

Не принимая во внимание опечатку в именах переменных, document.getElementById используйте идентификатор элемента без #

Значит ошибка в этой строке

for (var i = 0, row; row = document.getElementById("#certificationTable").rows[i]; i++) {

Должен быть

for (var i = 0, row; row = document.getElementById("certificationTable").rows[i]; i++) {
0
user757095user757095 28 Фев 2014 в 12:49