0

如果我尝试对我从表单中提取的两个变量进行任何数学运算,我会得到一个 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
4

2 回答 2

4

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

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

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

$('element').val('newValue')
于 2012-12-27T18:02:34.790 回答
2

使用.val()方法,value当它试图调用 jQuery 对象的“值”属性时将返回 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;
        }
    });
});
于 2012-12-27T18:04:17.367 回答