質問
この基本的な例があります:
<!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/
所属していません StackOverflow