4

这将是一个愚蠢的问题,只是想弄清楚与 HTML 表单交互的 Javascript 函数,却无法让它工作。

非常简单,把它放在小提琴里

$('#test').submit(function(){
    var battery = $('#battery').value();
    $('#output').text(battery);
});

<form id="test" action="">
    <fieldset>
        <label for="battery">Cell Count</label><br />
        <input type="number" size="3" name="battery" id="battery" /><br />
        <input type="submit" name="submit" id="submit" onclick="submit()" />
    </fieldset>
</form>

<div id="output">

</div>​​​​

总是返回错误,我不知道为什么。玩过和其他的东西,不能让它工作总是错误。

4

6 回答 6

4

错误可能.value()不是函数。你想要.val()

于 2012-12-26T22:29:37.527 回答
1

inputjQuery 返回元素值的函数是val(),而不是value()。您的代码应该是:

$('#test').submit(function(){
    var battery = $('#battery').val();
    $('#output').text(battery);
});

<form id="test" action="">
    <fieldset>
        <label for="battery">Cell Count</label><br />
        <input type="number" size="3" name="battery" id="battery" /><br />
        <input type="submit" name="submit" id="submit" onclick="submit()" />
    </fieldset>
</form>

<div id="output">

</div>​​​​
于 2012-12-26T22:29:51.377 回答
1

如果您使用适当的开发人员工具(例如 Firefox 中的 Firebug),那么您可以很容易地找出问题所在,因为在控制台中它会向您显示如下内容:

Uncaught TypeError: Object [object Object] has no method 'value'

这意味着没有value方法,val()而是应该使用的方法。

于 2012-12-26T22:33:54.917 回答
0

正确的函数是 val() no value() 在 jquery 中。

通过使用方法 .submit keep in the "return false"来不运行你没有考虑过的"form"的"action" 。

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    $(document).on('ready', function() {
        $('#test').submit(function(){
            var battery = $('#battery').val();
            $('#output').text(battery);
            return false;
        });        
    })

</script>

如果您使用的是 jQuery,则不需要输入对象中的 onclick="submit()" 参数

<form id="test" action="#">
    <fieldset>
        <label for="battery">Cell Count</label><br />
        <input type="number" size="3" name="battery" id="battery" /><br />
        <input type="submit" name="submit" id="submit"/>
    </fieldset>
</form>
<div id="output"></div>​​​​

问候

于 2012-12-27T19:06:31.010 回答
0

要使用 jQuery 从输入中检索值,您需要使用.val()

改变:

var battery = $('#battery').value();

至:

var battery = $('#battery').val();
于 2012-12-26T22:29:44.510 回答
0

我不确定这是否正确,但我认为您的 javascript 代码看起来像 php,并且action=""引号中的字段中没有任何内容。另外,我认为这个值应该是 val。

于 2012-12-26T22:36:20.937 回答