Javascript 相对表单操作解析为绝对URL?

Javascript 相对表单操作解析为绝对URL?,javascript,jquery,forms,dom,Javascript,Jquery,Forms,Dom,我试图获取放置在表单操作中的实际字符串。问题是,当我这样做时,action属性会解析为绝对路径,即使HTML中有相对路径。如何获取action属性中的实际字符串 以下是我所指的示例: 如果您已经在使用jquery,我将使用.attr函数,而不是从jquery对象中提取DOM元素。像这样: $("form").attr("action"); 这应该会让您真正了解action属性中的内容。在您提供的示例中,它应该看起来像“/某处”。jFiddle中的第二个示例将显示完整路径,因为这是action属

我试图获取放置在表单操作中的实际字符串。问题是,当我这样做时,action属性会解析为绝对路径,即使HTML中有相对路径。如何获取action属性中的实际字符串

以下是我所指的示例:

如果您已经在使用jquery,我将使用
.attr
函数,而不是从jquery对象中提取DOM元素。像这样:

$("form").attr("action");

这应该会让您真正了解action属性中的内容。在您提供的示例中,它应该看起来像“/某处”。jFiddle中的第二个示例将显示完整路径,因为这是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>​
还可以使用相同的标记设置动作属性:

$('#form1').attr('action', '[New Action Value]');

$('#form2').attr('action', '[New Action Value]');

希望这有帮助。

好的观点。basic javascript计算它有什么原因吗?@ianpgall这是个好问题,我也在想同样的问题。我的假设是,这只是该函数的编写方式,以便浏览器知道提交的完整URL,但是如果有人知道更具体的内容,我非常想知道。该属性的值与原始HTML中显示的值相同。将计算属性的值。如果您不知道属性和属性之间的区别,那么值得一读。@ianpgall发现得不错,很有趣。Lonesomeday,非常好的信息,谢谢。不是我,但我假设答案没有直接回答OP的问题。他在问如何获取相对URL。你的答案会对这个问题做出很好的评论,或者是一个已有的答案。但这与Javascript中为什么会出现这种情况无关,特别是当它可以通过
jQuery.attr
getAttribute
@Teeg:我同意,我可能应该详细阐述而不是发表声明@ianpgall:我试着认为sans
jQuery
@harsha是正确的,但是在我的另一个答案的评论中,你可以使用
getAttribute
,这并不是一个绝对的URL。正如lonesomeday指出的,这可能是属性和属性之间的区别。
$('#form1').attr('action', '[New Action Value]');

$('#form2').attr('action', '[New Action Value]');