私は一日中この問題を抱えていて、そこにあるすべてのフォーラム/ページのほぼすべての投稿を見てきましたが、私の問題の解決策を見つけられませんでした。説明はできるだけ簡潔かつ正確に行います。
私が欲しいのは単純です、私は動的に入力された数字をにコピーしたいtxtBox1
ですtxtBox2
。これらのtxtBoxは両方とも、の中にあるテーブルのTemplateField
中にありGridView
ます。は、イベントを使用しtxtBox1
てJavaScriptnumericOnly
関数を呼び出します。onkeydown
ユーザーが数値を入力すると、numericOnly
関数が起動し、return true句の直前に、に入力された数値から動的コピーを実行することになっている別のJavaScript関数を呼び出しtxtBox1
ますtxtBox2
。
ここでの問題は、私が使用しようとするたびに
document.getElementById('<%= txtDeathPremiumDifference.ClientID %>');
ページはこのエラーをスローします:
「txtDeathPremiumDifferenceという名前は現在のコンテキストに存在しません」
私は主張しなければなりません、私はこれでさえインターネット上で私が見つけたすべてを試しました:
document.getElementById(''<%# ((GridViewRow)Container')
.FindControl("txtDeathPremiumDifference").ClientID %>'')
.value="Hi";
しかし、何も機能していません。
結論として、テキストボックスの値にアクセスして、保持しているものを変更できるようにする必要があります。
これは"txtBox1"
実際にはそのように呼ばれていませんが、あなたは考えを理解します:
TextBox ID="txtDeathBankPremium" runat="server" CssClass="TexboxInput"
MaxLength="17" Width="122px" onkeydown="return isNumericKey(event);"
JS関数は次のとおりです。
function isNumericKey(e)
{
var charInp = window.event.keyCode;
if (charInp > 31 && (charInp < 48 || charInp > 57))
{
return false;
}
ComputePremiumDifference(charInp);
return true;
}
function ComputePremiumDifference(input) {
document.getElementById('<%= txtDeathPremiumDifference.ClientID %>')
.value="Hi";
}