2

我刚刚发现我可以$('form').prop(name)在表单中使用该名称获取输入。然后我在其他标签上进行了实验,这不适用于divand body。现在我没有办法判断表单是否需要post或者get是否有一个名为 的输入method,不幸的是,这在我的一个页面中是正确的。

action奖励:如果里面有一个命名的输入,我也无法获得表格action

<!doctype html>
<html lang="en">
<head>
    <title>jQuery.prop()</title>
    <script src="../../jquery-1.9.1.js"></script>
    <script>
    $(function() {
        var method = $('form').prop('method');
        console.log(method); // <select> element

        var form = $('form')[0];
        console.log(form.method); // <select> element

        $('form').prop('method', 'get');
        console.log(form.method); // still <select> element, but DOM inspector shows the form method is changed to "get"

        form.method='get';
        console.log(form.method); // still <select> element
    });
    </script>
</head>
<body>
    <form action="/Test/Create" method="post">
        <input type="text" name="content" value="" />
        <select name="method">
            <option value="phone">Phone</option>
            <option value="email">Email</option>
        </select>
    </form>
</body>
</html>

那么,当其中有一个带有该名称的输入时,我如何获取 form.method (或操作)?

4

3 回答 3

4

attr如果我正确理解了这个问题,你可以只使用 jQuery 的函数。

$('form').attr('action');
$('form').attr('method');
于 2013-07-10T15:15:57.927 回答
1

您应该能够.attr在 jQuery 上使用:

var method = $('#myform').attr('method');
var action = $('#myform').attr('action');
于 2013-07-10T15:17:29.433 回答
1

正如其他人所说,该属性仍然存在于 DOM 中。如果您在 Page Inspector 或类似工具中打开您的示例,您会发现 document.forms[0].attributes 在其映射中同时具有“动作”和“方法”键,您可以通过纯 Javascript 访问它们,例如所以:

document.forms[0].attributes['method'].value

或者通过 jQuery 像这样:

$('form').attr('method');
于 2013-07-10T15:25:32.190 回答