2

HTMLのコード:

        <input type="text" name="fileName" id="fileName" class="file_input_textbox" readonly="readonly" />

        <div class="file_input_div">
          <input type="button" value="Search files" class="file_input_button" />
          <input type="file" class="file_input_hidden" onchange="javascript: document.getElementsByName('fileName')[0].value = this.value" />
        </div>

正しく動作します。しかし、私がこのように書く場合:

<input runat="server" type="text" name="fileName" id="fileName" class="file_input_textbox" readonly="readonly" />

    <div class="file_input_div">
      <input type="button" value="Search files" class="file_input_button" />
      <input type="file" class="file_input_hidden" onchange="javascript: document.getElementsByName('fileName')[0].value = this.value" />
    </div>

エラーが発生しても機能しません:document.getElementsByName(...)。0'がnullであるか、オブジェクトではありません

4

2 に答える 2

5

追加すると、 runat="server"thenidとthenameは異なってレンダリングされ、asp.netによって変更される可能性があります

レンダリングされた名前を取得するには、を使用してUniqueIDそれをとして取得する<%=fileName.UniqueID%>ため、コードをそのまま実行する必要があります。

<input runat="server" type="text" name="fileName" id="fileName" class="file_input_textbox" readonly="readonly" />

    <div class="file_input_div">
      <input type="button" value="Search files" class="file_input_button" />
      <input type="file" class="file_input_hidden" 
         onchange="javascript: document.getElementsByName('<%=fileName.UniqueID%>')[0].value = this.value" />
    </div>

私はそれを確認します、そしてそれは方法です、これがマスターページ内に追加されるとき、名前とIDは変わります。マスターページのないページに単独でいる場合はそのままですが、マスターページに追加した場合は変更されるため、レンダリングされたIDで取得する必要があります。

clientidmode="Static"入力コントロールのは機能していませんが、機能しているだけnameidので、追加してIDを同じに保とうとすると、名前ではなくIDで要素を取得する必要があります。

于 2013-01-06T12:11:43.063 に答える
-1

コントロールのIDを使用できますが、マスターページがあり、テンプレートまたはグリッドを使用している場合は、IDが変更されます。したがって、クライアントIDモードを静的に設定して、この場合は変更されないようにすることができます。

<input runat = "server" type = "text" name = "fileName" id = "fileName" class = "file_input_textbox" readonly = "readonly" />

または、コントロールのクライアントIDを取得できます。

例 :

document.getElementById(<%= fileName.ClientID%>);

これがお役に立てば幸いです。

于 2013-01-06T12:27:24.627 に答える