現時点では、SharePoint プロジェクトで JavaScript を使用する場合、コードを *.ascx ファイルに<script type="text/javascript"></script>
ブロックで追加し、要素ごとにClientID
.
例えば:
var test = '<%= TextBox1.ClientID %>';
ここで、プロジェクトに外部 JavaScript を追加し、そこにコードを挿入したいと考えています。しかし、どうすればにアクセスできますClientID
か? 外部 JavaScript では使用できません<%= TextBox1.ClientID %>
。私はこれを見つけました:外部ファイルでサーバーコントロールを参照していますが、これがどのように機能するかわかりません。誰かが私のIDにアクセスする方法を説明できれば、それは素晴らしいことです。
ところで、なぜこれが:
<script type="text/javascript">
var ClientIDs = {
test1 : '<%= TextBox1.ClientID %>',
test2 : '<%= TextBox2.ClientID %>'
}
function SetButtonStatus() {
alert($(ClientIDs.test1).value);
}
</script>
動作しません。メッセージは表示されませんか?
グリーツ
編集1:
わかりました、外部スクリプトで textBox1 を使用できますか? 私はこのようにしました。これは私の *.ascx ファイルにあります:
<script type="text/javascript">
var ClientIDs = {
textBox1: '<%= textBox1.ClientID %>',
textBox2: '<%= textBox2.ClientID %>'
}
</script>
私の外部スクリプトには、それをテストするための関数しかありません:
function test () {
alert($(ClientIDs.textBox1).val();
}
私もそれをテストしました"#" +
。test() が実行されるたびに、次のエラーが発生します。
"document.getElementById(...)" is null or not an object
編集 2:)
アラートで
a を見逃しました。しかし、変数が定義されていないというメッセージが表示されます。使用する場合:$('#' + ClientIDs.SumbitSearch).val()
コントロールの ID ではなく、テキストを取得するだけです。
編集3: 現在私が使用している:
<script type="text/javascript">
var ClientIDs = {
test1 : '<%= TextBox1.ClientID %>',
test2 : '<%= TextBox2.ClientID %>'
}
function test() {
alert($('#' + ClientIDs.test1).attr("id")));
}
</script>
私の *.ascx ファイルでは、動作します。私はその方法が好きではありません...外部JSでは機能しません。参照は機能しません。誰かが.net 3.5で動作する他のアイデアを持っている場合は、彼が私に知らせてくれればうれしいです.