3

我有一个像这样的

<form id="popisgolubova_form">
    <input name="pregledaj" type="button" formaction="uredigoluba.php" formmethod="post" formtarget="_self" value="pregledaj" class="button" onclick="popisgolubova_radiobutton(this)">
    <input name="rodovnik" type="button" formaction="rodovnik.php" formmethod="post" formtarget="_blank" value="rodovnik" class="button" onclick="popisgolubova_radiobutton()">
    <input name="podaci" type="button" value="poodaci" formaction="podaciogolubu.php" formmethod="post" formtarget="_blank" class="button" onclick="popisgolubova_radiobutton()">
</form>

和 javascript

function popisgolubova_radiobutton(element)
{
    alert($(element).find("[formaction]").val());
    var popisgolubova_radiobutton=$("input[name=RadioGroup1]").is(":checked");
    if(popisgolubova_radiobutton==false)
    {
        alert("nop");
    }
    else
    {
        $("form#popisgolubova_form").submit();
    }   
}

首先,我正在检查是否选中了任何复选框,如果是,我可以提交表单。但问题是formaction、formmethod和formtarget。如何获取并提交

4

5 回答 5

12

要获取表单的操作或方法属性,您可以尝试以下操作:

$(function() { 
    var action = $("#formid").attr('action'),
        method = $("#formid").attr('method');
}); 
于 2013-06-20T13:35:22.033 回答
2

希望这有助于获得解决您问题的想法

<form id="popisgolubova_form">
<input name="pregledaj" type="button" formaction="uredigoluba.php" formmethod="post" formtarget="_self" value="pregledaj" class="button postForm"/>
</form>

$(document).on('click', '.postForm', function () {

$('#popisgolubova_form').attr('action', $(this).attr('formaction'));
$('#popisgolubova_form').attr('method', $(this).attr('formmethod'));
$('#popisgolubova_form').attr('formtarget', $(this).attr('formtarget'));
});
于 2013-06-20T13:42:49.683 回答
0

所以问题是关于不幸命名的

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formaction

...这是一种覆盖的方法

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-action

每点击一个正确设置的提交按钮。您要检查的地方是在提交时 - 当您确定事情实际上正在提交时。

您用来提交的按钮存储为 :focus - 目前似乎没有以其他方式存储在事件对象中。

$('form').on("submit", function(event) {
  if( $(':focus').is('[formaction]') ) {
    console.warn($(':focus').attr('formaction'));
    }

  if( $(':focus').is('[formtarget]') ) {
    console.warn($(':focus').attr('formtarget'));
    }
  });
于 2018-12-17T18:39:02.807 回答
0

我遇到了这个问题,在网上搜索后我找不到正确的答案。最后,我意识到它是如此简单。

当您添加一个事件时,form.submit您有一个包含 的事件参数e.originalEvent.submitter,只需按如下方式使用它:

$('form').submit(function(e){
    var url = form.attr('action');
    if (e.originalEvent.submitter) {
        var frmAction = $(e.originalEvent.submitter).attr('formaction');
        if (frmAction)
            url = frmAction;
    }
    ,.....
});

您也可以使用formmethod相同的东西。

于 2021-05-09T08:40:58.317 回答
0
if( $(':focus').is('[formaction]') ) {
    console.log($(':focus').attr('formaction'));
}
于 2019-03-15T10:14:38.463 回答