2012-02-03 3 views
0

я использую ниже, чтобы состояние этого код, строка таблицы (номер вопроса) ошибка произошла вЭто не отображает число в строке

var _qid = $("td.qid", this).text(); 
var _msg = "You have errors on Question Number: " + _qid + "\n"; 

Код выше переходит в функцию проверки ниже:.

function validation() { 

    var _qid = $("td.qid", this).text(); 
    var _msg = "You have errors on Question Number: " + _qid + "\n"; 

    alertValidation= ""; 
     // Note, this is just so it's declared... 


    $(".textAreaQuestion").each(function() { 
     if (!this.value || this.value.length < 5) { 
      alertValidation += "\nYou have not entered a valid Question\n"; 
     } 

      if(alertValidation != ""){ 
       return false;//Stop the each loop 
      } 
    }); 

     $(".numberAnswerTxtRow").each(function() { 
     var currenttotal = $(this).closest('.optionAndAnswer').find('.answerBtnsOn') .length; 

     if (!this.value) { 
      alertValidation += "\nPlease Enter in the Number of Answers you Require for this question\n"; 
     } 

    if(alertValidation != ""){ 
       return false;//Stop the each loop 
      } 

    }); 

Проблема в том, что она не отображает номер. Он отображает это «У вас есть ошибки в вопросе номер», но он не отображает номер вопроса после запятой. Как я могу получить номер?

Ниже приведен код, который добавляет каждую строку таблицы и добавление столбец номера вопроса в добавленных строках (строки таблицы 1 вопрос номер 1, строка таблицы 2 вопрос номер 2 и т.д.):

var qnum = 1; 

function insertQuestion(form) { 

    var $tbody = $('#qandatbl > tbody'); 
    var $tr = $("<tr class='optionAndAnswer' align='center'></tr>"); 
    var $qid = $("<td class='qid'>" + qnum + "</td>"); 

$tr.append($qid); 
$tbody.append($tr); 

    $(form).find('.numberOfQuestions').val(qnum); 

    ++qnum; 
    $("#questionNum").text(qnum); 

} 

Ниже приведен HTML добавленные строки добавляются в:

<table id="qandatbl" align="center"> 
<thead> 
<tr> 
    <th class="qid">Question No</th> 
</tr> 
</thead> 
<tbody></tbody> 
</table> 

проверка проверяется с помощью функции myclickHander(), как это:

function myClickHandler(){ 
    if(validation()){ 
       showConfirm(); 
    } 
} 
012 Функция

myClickHandler() вызывается с помощью кнопки представить так:

<p><input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" onClick="myClickHandler(); return false;" /></p> 
+0

Как выглядит ваш HTML? Вы проверили, что он содержит то, что вы думаете? – PeeHaa

+0

Хорошо, что содержит '_qid'? По-видимому, это не то, что вы думаете. Что это значит? –

+0

Что означает 'this'? Не могли бы вы также разместить HTML-код, желательно [jsfiddle demo] (http://jsfiddle.net)? – JJJ

ответ

0

Ваш контекст отсутствует, когда вы назначаете QID. Он действует только в контексте

$("tr"). Click(function(){ 
    // the context is valid here 
}) 

в противном случае ваш код не знаю, какой тд вы имеете в виду.

Если вы вызываете событие нажатием кнопки, здесь есть что-то более связанное. ваш HTML страницы

<table border="1" width="200"> 
    <tr> 
     <td class='qid'>1</td> 
     <td><input id="question1" class="question" value="This is valid"/></td> 
    </tr> 
    <tr> 
     <td class='qid'>2</td> 
     <td><input id="question2" class="question" value="not"/></td> 
    </tr> 
    <tr> 
     <td class='qid'>3</td> 
     <td><input id="question3" class="question" value="This is also valid"/></td> 
    </tr> 
</table> 
<button onclick="test()">Test</button> 

Затем код

function test(){ 

    $(".question").each(function(i,e){ 
     if(e.value.length < 5){ 
      console.log(e.id); 
      var _qid = $("#"+e.id).parent().parent().eq(0).text(); 
      //console.log(_qid) 
      alert("You have errors on Question Number: " + _qid); 
     } 
    }) 
} 

я положил его в jsFiddle здесь: http://jsfiddle.net/franky/bAbb9/

Я надеюсь, что это помогает.

+0

Могу ли я просто выполнить функцию $ ("tr"), потому что я не хочу нажимать на строку, а затем появляется предупреждение? Как код должен быть написан, чтобы иметь возможность находить строку таблицы? – user1182476

+0

Итак, у вас есть таблица с некоторым ID в заголовке. Пользователь нажимает кнопку отправки, затем вы анализируете таблицу и хотите вернуть сообщение с идентификатором относительно ячейки (TD), где вы обнаружили ошибку? –

+0

Я меняю свой ответ на триггер с помощью кнопки ** **, а не щелчка по строке. –