-1

getElementById などのメソッドを使用して JavaScript で検証するフィールドを取得する方法を知っています。この例では、getElementByName メソッドを使用する必要があります。'Cannot read property 'nodeValue' of nullconsole.logにエラーがあります。

これは、機能した getElementByName メソッドで使用したコードです

HTML

<button name="button1">Hello</button>
<div class="form-row">    
            <div class="field w100">    
                <label for="primary_phone">Primary phone (digits only) *</label>
                <input type="text" name="primary_phone" id="primary_phone" placeholder="hello"></input>

        </div>
    </div>   
    <div class="form-row">      
        <label for="confirm_phone">Confirm phone (digits only) *</label>
        <input type="text" name="confirm_phone" id="confirm_phone"></input>    
    </div> 
  </div>

JavaScript

var btn1 = document.getElementsByName('button1')[0];
var btn1Text = btn1.firstChild.nodeValue;
console.log(btn1Text);

以下は、エラーを返すコードです。

HTML

<button id="button">Button</button>

JavaScript

function validate() {

    var primaryNo = document.getElementsByName('primary_phone')[0];
    var confirmNo = document.getElementsByName('confirm_phone')[0];
    var primaryValue = primaryNo.firstChild.nodeValue;
    var confirmValue = confirmNo.firstChild.nodeValue;

        if (primaryValue !== confirmValue) {
            alert('Numbers do not match');
        } else {
            alert('congratulations')
        }
};

var btn = document.getElementById('button');
btn.addEventListener('click', validate, false);

何か案は?

4

2 に答える 2

1

input値を取得しようとしているフィールドがあるようです。

その場合、子要素はありません。代わりに、value好きなものを取得する必要があります

var primaryValue = primaryNo.value;
var confirmValue = confirmNo.value;
于 2016-04-21T09:10:27.437 に答える
0

var btn1 = document.getElementsByName('button1')[0]; の結果は何ですか? コンソールで (console.log(btn1);) ?

タグ名には注意してください: ボタン、ボタン 1... 構文が間違っている可能性があります。

于 2016-04-21T09:15:50.593 に答える