フォーム アクションに配置される実際の文字列を取得しようとしています。問題は、これを行うと、相対パスが HTML にあるにもかかわらず、アクション プロパティが絶対パスに解決されることです。action プロパティにある実際の文字列を取得するにはどうすればよいですか?
ここに私が言及しているもののサンプルがあります: http://jsfiddle.net/MSY4s/
フォーム アクションに配置される実際の文字列を取得しようとしています。問題は、これを行うと、相対パスが HTML にあるにもかかわらず、アクション プロパティが絶対パスに解決されることです。action プロパティにある実際の文字列を取得するにはどうすればよいですか?
ここに私が言及しているもののサンプルがあります: http://jsfiddle.net/MSY4s/
すでにjqueryを使用している場合は.attr
、jQueryオブジェクトからDOM要素を抽出するのではなく、関数を使用します。そのようです:
$("form").attr("action");
これにより、文字通りaction属性の内容がわかります。提供した例では、「/somewhere」のようになります。jFiddleの2番目の例では、フルパスがaction属性に含まれているため、フルパスが表示されます。
相対 URL は常に、現在のドキュメントの URL に基づいて絶対 URL に解決されます。
これを試して:
両方のフォーム ID を指定します。
<form id="form1" action="/somewhere" method="post">
<input type="text" name="test" />
</form>
<form id="form2" action="https://fiddle.jshell.net/somewhere2" method="post">
<input type="text" name="test" />
</form>
次に、これらの ID を使用して、各フォームのアクション属性を取得できます。
$('#form1').attr('action');
$('#form2').attr('action');
同じタグを使用してアクション属性を設定することもできます:
$('#form1').attr('action', '[New Action Value]');
$('#form2').attr('action', '[New Action Value]');
お役に立てれば。