質問

この基本的な例があります:

<!doctype HTML>
<html>
<head>
    <script src="jquery-1.4.2.min.js" type="text/javascript"></script>
    <script>
        $(document).ready(function(){
            $("#showAction").click(function(){
                alert($("#myForm").attr("action"));
            });
        });
    </script>
</head>
<body>
<form id="myForm">
    <input type="text" name="action" value="myAction" />
</form>
<input type="button" value="click me" id="showAction" />
</body>
</html>

「クリックしてください」をクリックすると、タグが表示されます

$("#myForm").attr("action"); 

実際には、要素の属性を返しません。フォームの子を「アクション」という名前で返します。

これは予想される動作ですか?これはjQueryのバグですか?

役に立ちましたか?

解決

それはずっと前にnetscapeによって導入された「バグ」です(骨の頭のある動き、IMO)、ここで form.action 要素があるため、プロパティです name の子供です <form>. 。いいえ、それは実際にはjQueryのバグではなく、あなたの視点に応じてJavaScriptのバグです... jQueryはこれらのケースについて追加のチェックを持っていません。

安全になるには、要素に名前を付けないでください "action" また "submit", 、それは混乱する可能性があるので form.submit() 同じように。

他のヒント

確かに非常に奇妙です。私は静かに言うつもりです - バグ...

との形式 action 属性: http://jsfiddle.net/vmtyy/

なしでフォーム action 属性: http://jsfiddle.net/zwwtm/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top