質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

LiteralControlでonclickにjsの引数を設定したい

Qoo
Qoo

総合スコア1244

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

1回答

0グッド

0クリップ

2950閲覧

投稿2017/02/06 13:53

お世話になります。
asp.net(c#)でLiteralControlを使ってボタンを生成し、javascriptを実行したいのですが、
引数がうまく設定できず質問させて頂きました。

javascript自体は下記のように単純なものでテストしています

//javascript function test(str) { alert(str); }

テスト1
下記のように引数なしで実行するときちんとアラートは表示されます。
但し引数が空なのでundefinedと表示されます。

LiteralControl btn = new LiteralControl("<input type='button' value='追加' onclick='test();'/>"); div.Controls.Add(btn);

テスト2
下記のように引数をつけて実行するとアラートは表示されませんでした。

LiteralControl btn1 = new LiteralControl("<input type='button' value='追加' onclick='test('aaa');'/>"); div.Controls.Add(btn1);

おかしいと思い、生成されたHTMLを確認したところ下記のようにおかしな形で出力されていました。
<input type="button" value="追加" onclick="test(" aaa');'="">
なぜ、aaaの前に空白が入ってしまうのか理解できないのですが、
正しく引数を設定するにはどうすれば良いでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

1

ベストアンサー

引数のクォートにエスケープしたダブルクォート(")を
使用してみてはいかがでしょうか?

LiteralControl btn1 = new LiteralControl("<input type='button' value='追加' onclick='test(\"aaa\");'/>"); div.Controls.Add(btn1);

onclickのクォートとその中の引数のクォートに
同じシングルクォートを使用しているため
おかしくなっているように見えます。

投稿2017/02/06 14:12

_yu_

総合スコア91

Qoo👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

Qoo

2017/02/06 14:22

無事引数付きで実行することができました!ありがとうございます!

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。