2017-02-28 19 views
0

Javascriptを使用して入力フィールドを読み取り専用に設定しようとしています(値が含まれていない場合、つまりnullの場合)。誰かJavascriptを使用して入力を読み取り専用に設定する

//checkScore(); 
 
function checkScore(){ 
 
    document.getElementById('score_row1').readonly = true; 
 
    var scores = document.getElementsByClassName("score_holder"); 
 
    var i; 
 
    for(i=0; i<scores.length; i++){ 
 
     if(scores[i].value!=null){ 
 
      scores[i].readonly="readonly"; 
 
     } 
 
    } 
 
}
<!doctype html> 
 
<html> 
 
    <head> 
 
    </head> 
 

 
    <body onload="checkScore()"> 
 

 

 
     <table align="center" cellpadding="3"> 
 
      <tr valign="baseline"> 
 
       <td colspan="3" align="center" id="course_row25" value="EDU-101"><strong>EDUCATION COURSES</strong></td> 
 
      </tr> 
 
      <tr> 
 
       <td align="right"> 
 
        <input name="course_row1" type="text" id="course_row1" title="EDU-101: Historical Foundation of Education" value="EDU-101" size="5" readonly="readonly" /> 
 
       </td> 
 
       <td>&nbsp;</td> 
 
       <td> 
 
        <input type="text" value="30" size="5" class="score_holder" /> 
 
       </td> 
 
      </tr> 
 
      <tr> 
 
       <td align="right" id="course_row1" name="course_row1" value="EDU-101"> 
 
        <input name="course_row1" type="text" id="course_row1" title="EDU-101: Historical Foundation of Education" value="EDU-101" size="5" readonly="readonly" /> 
 
       </td> 
 
       <td>&nbsp;</td> 
 
       <td> 
 
        <input type="text" size="5" class="score_holder" /> 
 
       </td> 
 
      </tr> 
 
      <tr> 
 
       <td align="right" id="course_row1" name="course_row1" value="EDU-101"> 
 
        <input name="course_row1" type="text" id="course_row1" title="EDU-101: Historical Foundation of Education" value="EDU-101" size="5" readonly="readonly" /> 
 
       </td> 
 
       <td>&nbsp;</td> 
 
       <td> 
 
        <input type="text" value="10" size="5" class="score_holder" /> 
 
       </td> 
 
      </tr> 
 

 
     </table> 
 
    </body> 
 
</html>

+0

があるべき '[i]を.readonly ="読み取り専用 – epascarello

+0

'スコアをreadOnly'を作成する必要があります";' - 読み取り専用DOMプロパティはブール値です。値は 'true'と' false'を持つことができます。 '' readonly''は、文字列がブール値にキャストされているためにのみ機能します。 – Quentin

+0

として@Quentin、[ここ](https://www.w3schools.com/jsref/prop_text_readonly.asp)に関しては、スコア[i] .readOnly = true; –

答えて

1

まず、HTMLにIDがscore_row1の要素がないため、jsがエラーをスローして失敗します。

またプロパティがreadOnlyなくreadonly

だから、これscores[i].readonly="readonly";scores[i].readOnly="readonly";

が作業のデモhere

+0

ありがとう – MGS

1

テキスト入力の値がは常にがされる可能性があり、これは、私は、デバッガからのすべてのエラーを受信して​​いないよ、私のコードですが、それは単に働くことを拒否します文字列。

何も入力されていない場合、値は""になります。決してnullにはなりません。

+0

が、私が達成しようとしているものは、入力をreadOnlyに設定することです。すべての入力フィールドがreadOnlyに設定されることを意味するはずですが、そうではありません。 – MGS

関連する問題