1. ホーム
  2. javascript

[解決済み] 入力を含むフォームを取得するには?

2022-09-12 23:48:23

質問

INPUTへの参照しかないときに、INPUTのFORM親への参照を取得する必要があります。これはJavaScriptで可能でしょうか?お望みであれば、jQueryを使用してください。

function doSomething(element) {
    //element is input object
    //how to get reference to form?
}

これはうまくいきません。

var form = $(element).parents('form:first');

alert($(form).attr("name"));

どのように解決するのですか?

inputであるネイティブのDOM要素にも form 属性があり、それが属するフォームを指します。

var form = element.form;
alert($(form).attr('name'));

によると w3schools によると、その .form プロパティは、IE 4.0+, Firefox 1.0+, Opera 9.0+と、jQueryが保証しているブラウザよりも多くのブラウザでサポートされているので、これにこだわるべきでしょう。

これが別のタイプの要素であった場合 ( <input> ではない) 場合、最も近い親要素を見つけるには closest :

var $form = $(element).closest('form');
alert($form.attr('name'));

また、この MDN のリンクで form プロパティの HTMLInputElement :