使用jQuery获取表单的操作/URL

62
如何使用jQuery获取表单的操作URL?
4个回答

135

获取表单,请求action属性:

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

2
很好的回答。我曾经好奇attr()是否是最好的方法,而不是较新的prop()。结果发现它们都返回不同的内容 - elbowlobstercowstand

35

需要完整的操作URL而不仅仅是基本名称?

通常在获取这些值时,最好使用prop()而不是attr()。 (此prop() vs attr() stackoverflow post解释了原因。)

但是,在这种情况下,@JAAulde 的答案正是我所需的,但可能不是你所需的。 您可能需要完整的操作URL。

考虑以下HTML表单开始标记:

<form action="handler.php" method="post" id="myForm">

attr() 返回精确的属性值:

$('#myForm').attr('action'); 
// returns 'handler.php'

prop() 返回完整的动作 URL:

$('#myForm').prop('action');
// returns 'http://www.example.com/handler.php'

查看此Stackoverflow帖子中的炫酷ASCII表格以了解更多信息。


4

试试这个:

var formAction = $('#form')[0].action;

或在表单提交时:

 $("#form").submit(function (event) {
    event.preventDefault();
    var frmAction=this.action;
});

3

使用表单的action属性,可以采用以下方法:

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

像@JAAulde所说的那样。

要使用来自表单的输入值,请使用:

$('#myInput').val();

1
表单本身没有值,而是其中包含的表单元素有值。您的评论似乎有点混淆。 - Rory McCrossan
是的,#myInput指的是表单中的输入元素,可以在其中输入URL。 - Owen
1
好的,如果是这种情况,#myInput 可能没有 action 属性。@RoryMcCrossan 的观点是它不会同时拥有两者。 - Landon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接