0

フォームのプレースホルダー属性を取得し、そのような関数の条件として使用したいスクリプトがあります (これは私には正しくないように思われるので、機能しないことは驚くことではありません):

if (document.getElementsByName("Name").input.placeholder == "Enter Name") {
    //do something
}

ラッパー関数は、実際には引数として次の形式を取ります。

function form_function(form) {
    var input = document.getElementsByName("Name");
    var placeholder = input.placeholder;

    if (placeholder == "Empty") {
        // do something
    }
}

私は無駄にいくつかの異なることを試しました。エラー コンソールは、入力が未定義であることを示しています。たとえば、次のように始めました。

var placeholder = form.input.placeholder;

それもうまくいきませんでした。

次に、いくつかのアラート テストを実行しました。入力にアラートを出すとNodeListオブジェクトが表示されますが、対処方法がわかりません。

そこで、 をループしてみましたNodeListが、使用方法がわからないオブジェクトがいくつかありました。

var inputList = document.getElementsByName("Name");

var inputArray = [];

for (var i = 0; i < inputList.length; i++) {
    inputArray[i] = inputList[i];
    alert(inputArray[i]);
}

アラートが与える[object HTMLInputElement]

基本的に、特定の名前属性を持つフォームのプレースホルダー値に対してテストしたいだけです。どうやら道に迷ったようだ…

ありがとう。

4

1 に答える 1

0

@apsillersが正しく述べたように、返された要素は配列内にあるため、必要なものをキャプチャする必要がありました。私はこれで行きました:

placeholder = document.getElementsByName("Name")[0].placeholder;

そして、必要に応じて関数でこれを使用できました。

于 2013-08-28T19:11:49.727 に答える