2015-08-28 4 views
-1

Я разрабатываю код, в котором службы поступают из базы данных в теги <li></li>.Функция JavaScript не выполняется из-за операторов if-else

В настоящее время активны только некоторые из служб, и если пользователь выбирает услугу, и если эта услуга активна, то продолжайте, а если нет, то должно появиться предупреждающее сообщение.

Я понятия не имею, почему это function validation() не выполняется. Любая помощь будет оценена

ниже код я работаю над:

<script language="javascript"> 
    function validation() { 
     var category = document.getElementById("category").value; 
     category = category.trim(); 
     if (category == "") { 
      alert("Please Select Category."); 
      return; 
     } else { 
      var limiter = ["Electrician", "Photographer", "Printing Press", "Website Designer", "Web developer", "DJ Music", "Coaching Classes", "Civil Contractor", "Computer Hardware Services"]; 
      var limiter_count = limiter.length; 
      for (var i = 0; i < limiter_count; i++) { 
       if (category == limiter[i]) { 
        document.getElementById("form1").action = "categoryforms.php"; 
        document.getElementById("form1").submit(); 
        //loop should be terminated 
       } else { 
        var alrt = "We will soon be launching our service in " + category + ", kindly stay tuned..."; 
        alert(alrt); 
        //loop should be terminated here also 
       } 
      } 
     } 
    } 
</script> 

и форма форма:

<form action="" method="post" name="form1" id="form1" > 
    <input type="text" name="category" id="category" value="<?php echo $category; ?>" /> 

    <ul id="categorymenu" class="mcdropdown_menu"> 

    <?php 
     $sql = "SELECT * FROM category"; 
     $sql_result = mysql_query ($sql); 

     while ($row = mysql_fetch_assoc($sql_result)){ 
     ?> 
      <li rel="<?php echo $row["category"]; ?>" value="<?php echo $row["category"]; ?>" ><?php echo $row["category"]; ?> </li> 
      <?php 
     } 
    ?> 
    </ul> 

    <input id="button" type="button" value="Send " class="serch" onClick="javascript:validation()"> 
</form> 
+5

Шаг 1: Форматирование кода читаемо, чтобы сделать его проще для людей, чтобы помочь вам. –

+0

Ваш код полностью работает. Я просто тестирую его на отладчике консоли IE, и после нажатия кнопки «Отправить» он переходит в javascript-метод. Поэтому попробуйте проверить, есть ли у вас правильная ссылка на файл javascript. Lukas –

ответ

1

Вам не нужно для цикла, используйте Array.prototype.indexOf() проверить элемент существует в массиве или нет.

indexOf() метод возвращает первый индекс, при котором данный элемент может быть найден в массиве или -1, если его нет.

Script

function validation() { 
    var category = document.getElementById("category").value; 
    category = category.trim(); 

    if (category == "") { 
     alert("Please Select Category."); 
     return; 
    } 

    var limiter = ["Electrician", "Photographer", "Printing Press", "Website Designer", "Web developer", "DJ Music", "Coaching Classes", "Civil Contractor", "Computer Hardware Services"]; 

    var index = limiter.indexOf(category); 
    if (index > -1) { 
     document.getElementById("form1").action = "categoryforms.php"; 
     document.getElementById("form1").submit(); 
     //loop should be terminated 

    } else { 
     var alrt = "We will soon be launching our service in " + category + ", kindly stay tuned..."; 
     alert(alrt); 
     //loop should be terminated here also 
    } 
} 
+0

спасибо @Satpal, что ваш код теперь работает! –

Смежные вопросы