これが私が取り組んでいるウェブページの基本的な流れです:
- ユーザーがボタンをクリックすると、日付/時刻ピッカーがポップアップします(動作します)。
- 時間文字列がテキストボックスに入力されます。たとえば、午前4:00(動作)です。
- 次に、ユーザーは2つのラジオボタンのいずれかを選択する必要があります。テキストボックスで時間を読み取る必要があります。radiobutton1は4時間を追加し、radiobutton2は4.5を追加します(機能しません)。
- 合計時間は別のテキストボックスに表示されます(まだこれに到達していません)。
最初の項目(サーバーから日付を取得する)を除いて、ほとんどの作業はJavascriptによって行われます。
これが私が取り組んでいるJavascriptです:
function setHours(setting)
{
var tempVal = document.getElementById('<%=Text6.ClientID%>');
var nHours;
var textHours = new DateTime(tempVal);
alert(tempVal);
textHours = getHours
if (setting==true) {
nHours = 4;
alert("4");
}
else {
nHours = 4.5
alert("4.5");
}
textHours.setHours(textHours.getHours() + nHours);
document.getElementById("text8").value = textHours;
}
この関数は、ユーザーが2つのラジオボタンのいずれかをクリックしたときに呼び出されます(1つはtrueを渡し、もう1つはfalseを渡します)。最初は関数全体を起動できなかったため、「アラート」が散在していることに注意してください。だから私は「ifステートメント」と「アラート」以外のすべてをコメントアウトしました、そして見よ、それはうまく機能します。
問題は変数のどこかにあると思います。おそらく、「tempVal」がtext6の値を取得する方法です。
テキストボックスのコードは次のとおりです。
<form id='frmRequestApplicationForm' name='frmRequestApplicationForm' action='#' method='post'>
<input class="textboxdefault" type="text" name="Starttime" id="Text6" value="<%=(requestApplicationForm.StartimeError.ToString().Equals("")?requestApplicationForm.StarttimeDate.ToShortDateString().Equals("1/1/0001")?"":requestApplicationForm.StarttimeDate.ToShortTimeString(): requestApplicationForm.Starttime)%>"/>
</form>
プログラムをビルドすると、「Text6は存在しません」と表示されます。コードがどこで機能するのかわかりません。
「<%= Text6.ClientID%>」を単純な「Text6」に置き換えると、Javascript関数全体が失敗します。
これについて助けてもらえますか?