使用JS从表单PHP表单获取NaN

时间:2012-12-27 17:58:59

标签: php javascript html nan

如果我尝试使用从表单中拉出的两个变量进行任何数学运算,我会得到NaN值。如果我尝试解析它,它也会给我NaN。 IDK,如果它有帮助,但使用PHP从URL中提取值;例如:.../serch.php?animal=all&color=any&sunSd=all&lifeSpn=all&limiterF=5&limiterT=20

limiterF和limiterT是我正在使用的变量。 HTML:

<form id='serchForm' action="serch.php" method="GET">
...
            <fieldset>
            From: <input type='text' id = 'limiterFid' name='limiterF' value=<?php if (!empty($_GET['limiterF'])) {echo $limiterF;} else {echo 0;} ?> size="2" /><br />
            To: <input type='text' id = 'limiterTid' name='limiterT' value=<?php if (!empty($_GET['limiterT'])) {echo $limiterT;} else {echo 20;} ?>  size="2" />
            </fieldset>
        <input type="submit" id="submitNew" />
        <input type="submit" id="nextSerch" />

JS:

$(document).ready(function() {
    $("#serchForm input").click(function(e) {
        if(e.target.id == 'submitNew') {
            e.preventDefault();
            $('#limiterFid').attr("value", 0);
            $('#limiterTid').attr("value", 20);
            $("#serchForm").submit();
        } else if (e.target.id == 'nextSerch') {
            e.preventDefault();
            var limiterF = $('#limiterFid').value,
            limiterT = $('#limiterTid').value;
            limiterT = limiterF + limiterT;
            limiterF = parseInt(limiterF, 5);

            $('#limiterFid').attr("value", limiterF);
            $('#limiterTid').attr("value", limiterT);
            $("#serchForm").submit();
        } else {
            return;
        }
    });
});

当您单击nextSerch时,它将返回:

.../serch.php?animal=all&color=any&sunSd=all&lifeSpn=all&limiterF=NaN&limiterT=NaN

2 个答案:

答案 0 :(得分:4)

value是DOM元素的属性,而不是jQuery对象。您可以在原始DOM元素上使用val()value

$('element').val()
// OR
$('element')[0].value

另外,要设置您通常不使用attr的值,请使用val

$('element').val('newValue')

答案 1 :(得分:2)

使用.val()方法,因为value将在尝试调用jQuery对象的'value'属性时返回undefined:

$(document).ready(function() {
    $("#serchForm input").click(function(e) {
        if(e.target.id == 'submitNew') {
            e.preventDefault();
            $('#limiterFid').val(0);
            $('#limiterTid').val(20);
            $("#serchForm").submit();
        } else if (e.target.id == 'nextSerch') {
            e.preventDefault();
            var limiterF = $('#limiterFid').val(),
            limiterT = $('#limiterTid').val();
            limiterT = limiterF + limiterT;
            limiterF = parseInt(limiterF, 5);

            $('#limiterFid').val(limiterF);
            $('#limiterTid').val(limiterT);
            $("#serchForm").submit();
        } else {
            return;
        }
    });
});