尝试使用Javascript / jQuery访问某些输入标记值

时间:2011-10-27 16:38:16

标签: 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自己时.value我得到一个NaN。我认为这与技术上作为子节点的表单有关?但是,我很难过,任何帮助都会很棒。

同时忽略我的ids等拼写中的任何拼写错误或不一致,我很快将其更改为Test for posting。

谢谢!

1 个答案:

答案 0 :(得分:2)

total += ("#route" + i).val();应为total += parseInt($("#route" + i).val());