2011-12-15 2 views
0

基本的に、JavaScriptのテキストボックスの値が元の値から変更されたかどうかを確認するための簡単な関数を作成しています。ユーザーが「いいえ」をクリックして何もしない場合、「いいえ」をクリックしてテキストボックスの値を元の値に戻したいとします。JavaScriptの関数が値を表示していないか、テキストボックスに書き込む

EDIT

オーケー、私が問題の根本にと誤解したようです。私が持っている隠れた入力であるinpUsernameは最初から空白であるようです。同じコントロールの別のテキストボックスの値をとるように、コードのasp部分で正しく設定するにはどうすればよいですか?

は、私が現在持っている:

<input type="hidden" id="inpUsername" runat="server" value= 
%#DataBinder.Eval(Container.DataItem,"txtUsername")%> /> 

これはエラーを返します:BC30456: 'のDataItemは' 'System.Web.UI.Control' のメンバではありません。しかし、要求されたとして、私はtxtUsername宣言画面に

を、それが「/>出力値の周りに追加の引用符を追加する場合は次のとおりです。

<asp:TextBox ID="txtUsername" runat="server" CssClass="Textbox" Style="width:100%" 
onchange="checkForUsernameChange()"/> 
+1

ちょっとしたことだが '.value!== 0'は常に真である。' .value'は数値型ではない文字列を返すので '!== 0'は暗黙的にテストする('!== "0" 'または'!= 0')。 –

+0

txtUsername/inpUsernameを確認しましたか? 'document.getElementById(" <%= inpUsername.ClientID%> ")。value'が空で、' inpUsername'でなければならない場合は、レンダリングされたjを質問に追加するのにも役立ちます。 –

+0

はい、inpUsernameは残念ながらnullですが、それが私の問題です。どうすればtxtUsername.valueの値と等しくなるようにasp部分に設定できますか?私は何でもエラーをスローするようです。 – shicky

答えて

3
var txtUsername = document.getElementById(" <%=txtUsername.ClientID%>").value; 

IDの前にいくつかのスペースがあります私はかなり確信していますあなたが望んでいた:

var txtUsername = document.getElementById("<%=txtUsername.ClientID%>").value; 

それともスペースが意図されていた、confirmはまた、それらのスペースを含める必要があり、その場合には

。 0
+0

私のコードには空白がありません。これは、ここでコードを取得するための書式設定によって引き起こされたものです。コードを投稿するのは初めてでした。どんな理由であれ、私はそれらのテキストボックスから値を取得して出力することができないと思われます。それらは間違いなく空白にしてはいけません。 – shicky

+0

私たちはあなたに答えがないので、jsfiddleをセットアップしてください。私たちは、txtUsernameが空であると仮定することができます。これは以前のユーザー名とは異なります... –

+0

私は本当に馬鹿であり、隠しフィールドの値を決して設定しないので、正しく空白になりました。 – shicky

関連する問題