#javascript #jquery
#javascript #jquery
Вопрос:
Я пытаюсь получить значения некоторых входных тегов для выполнения некоторой проверки перед продолжением. Моя форма находится внутри диалогового окна jQuery, в котором HTML динамически генерируется на основе количества элементов в массиве JSON, например —
if (testDialog === null)
{
myTestDialogContentDiv = '<div id="TestDialog" style="padding-left: 0; top: 0px; left: 0px;">';
}
myTestDialogContentDiv = '<div id="TestDialogWarning" class="ClockInner"></div>';
myTestDialogContentDiv = '<div id="TestDialogText" class="ClockInner" style="position: relative;"></div>';
myTestDialogContentDiv = '<div class="TestDialogTxt"></div>';
myTestDialogContentDiv = '<form>'; //Start Form
myTestDialogContentDiv = '<p><b>Routing Out:</b></p>';
if (data.routesout.length > 1)
{
for(i=0;i<data.routesout.length;i )
{
myTestDialogContentDiv = '<label for="route' i '">' data.routesout[i].name '(%)</label>';
myTestDialogContentDiv = '<input onkeypress="validateKeypress(event)" type="text" name="route' i '" id="route' i '" value="' data.routesout[i].percent '" maxlength="5" size="8" class="ui-widget-content ui-corner-all">';
myTestDialogContentDiv = '</br>'
}
}
else
{
myTestDialogContentDiv = '<label>' data.routesout[0].name '(%)</label>';
myTestDialogContentDiv = '<input type="text" name="route0" id="route0" disabled value="' data.routesout[0].percent '" maxlength="5" size="8" "class="ui-widget-content ui-corner-all">';
}
И это мой код для создания диалогового окна со встроенными в него данными формы вместе с моей проверкой «при отправке».
TestDialog = $("#TestDialog");
TestDialog.dialog({
title: data.name,
resizable: true,
closeOnEscape: true,
zIndex: 1000,
dialogClass: 'outerGlow hideCloseX testDialog',
buttons: {
"Save":function() {
//Need to check that all the fields add up to EXACTLY 100%
var total = 0;
for(var i=0; i< data.routesout.length; i )
{
total = ("#route" i).val();
}
if (total !== 100)
{
alert("NOT EQUAL TO 100!!!");
}
else
{
//TODO - Add Requests to update objects
$(this).dialog("close");
}
},
"Cancel": function() { $(this).dialog("close"); }
}
});
Я получаю сообщение об ошибке Jscript, в котором говорится об этом.val не существует для этого элемента, когда я пытаюсь использовать Jscripts own .value, я получаю NaN. Я думаю, это как-то связано с тем, что форма технически является дочерним узлом? Но, тем не менее, я в тупике, любая помощь была бы отличной.
Также игнорируйте любые орфографические ошибки или несоответствия в моем написании идентификаторов и т.д., Я быстро изменил его на Test для публикации.
Спасибо!
Ответ №1:
total = ("#route" i).val();
должно быть total = parseInt($("#route" i).val());
Комментарии:
1. Хороший улов. Поднимите руки, если вы делали это сами в прошлом, все.
2. Дох! Я только что заметил, что мне также нужно указать, что я использую целые числа, поскольку общее значение становится «0100»! Спасибо, чувак!
3. Вы должны проанализировать значение в
int
. Я обновлю свой ответ.