• ベストアンサー

Acrobat Java Scriptについて教えてください。

お世話になります。 Acrobat JavaScriptの初心者ですが、以下の問題で困ってます。 使用環境:Acrobat 4.05で、PDFフォームにてテキスト型のフィールドA,B,Cを作成しております。やりたいことは、AとBにデータが入力されるとCにA+Bの文字列を代入したいです。 つまり、Aに”012”と入力され、Bに”034”と入力された時、Cには”012034”を入れたいのです。 そのためフィールドcの書式スクリプトに var a;・・・・・・・・・・・・・・(1) var b;・・・・・・・・・・・・・・(2) a = this.getField("A").value;・・・(3) b = this.getField("B").value;・・・(4) event.value = a+b;・・・・・・・・(5) の5行を記述していますが、どうも(3)、(4)行目の段階で"012"の"0", "034"の"0"が消えてしまいます。 Acrobat5.0だと”valueAsString”のようなプロパティが追加されているようですが、Acrobat4.05の環境ではどうすればテキストの前のゼロを保留できるのでしょうか? どなたが教えてください.

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

テキストフィールド側で強制的に文字を一文字入れて、 文字列扱いさせるか、 それとも、以下を試してみてください。 a = this.getField("A").value+""; ダメかもしれないですが、いずれも数値を文字列にしてみようという 試みです。

mousemimi
質問者

お礼

ご回答ありがとうございます。 問題は”A”に前ゼロつきで文字列が入っていてもthis.getField().valueを使った段階で前のゼロが消えちゃうんです。 とほほ~

その他の回答 (1)

回答No.1

AcrobatのJavaScriptについてはよく分かりませんが、 a = String(this.getField("A").value);・・・(3) ではいかないですかね?

mousemimi
質問者

補足

早速のお返事ありがとうございます。 残念ながらこの方法ではやっぱり前のゼロが消えちゃうんです。 (ToT)

関連するQ&A

  • フレーム内のJavaスクリプトの制御方法について

    textとtextareaフォームに文字を入力する際の制御について どのようにすれば良いかご教授頂けばと思います 【やりたい事】 textとtextareaに文字を入力するときに、 「ime-mode: disabled」を使いIMEを直接制御し、 コピー&貼付け対策のため「JavaScript」で、 全角より半角に自動変換されるように制御しました。 下記のソースをhtmlファイルに記述しています。 しかしながら、フレーム内に該当htmlファイルを設定すると、 「ime-mode: disabled」と「JavaScript」で制御している 全角から半角へ自動変換が機能しなくなります。 動作環境は、IE7 ~ IE9を想定しています。 サンプルファイルを下記にアップしました。 https://box.yahoo.co.jp/guest/viewer?sid=box-l-uuwbyy42v2bpqxq7lxcoosuyni-1001&uniqid=65c3cea9-7cd0-4b71-bc86-3213de26599e 出来るだけシンプルな方法で解決策があればご教授をお願いいたします。 【ソース】 ・text: <input type="text" name="text01" value="1入力してください" size="60" style="width:450px;" style="ime-mode: disabled;" onkeyup="chkCode(this);" onfocus="if (this.value == defaultValue) this.value = '';" onblur="if (!this.value) this.value = defaultValue;"> ・textarea: <textarea name="textarea01" id="textarea01" cols="60" rows="5" style="ime-mode: active;" onfocus="if(this.value == this.defaultValue) this.value=''" onblur="if(this.value == '') this.value=this.defaultValue"> ・JavaScrpt: function chkCode(id) { work=''; for (lp=0;lp<id.value.length;lp++) { s=id.value[lp] s={"ー":"-","@":"@","_":"_","/":"/","¥":"?","&":"&","%":"%"}[s]||s unicode=s.charCodeAt(0); if ((0xff0f<unicode) && (unicode<0xff1a)) { work+=String.fromCharCode(unicode-0xfee0); } else if ((0xff20<unicode) && (unicode<0xff3b)) { work+=String.fromCharCode(unicode-0xfee0); } else if ((0xff40<unicode) && (unicode<0xff5b)) { work+=String.fromCharCode(unicode-0xfee0); } else { work+=String.fromCharCode(unicode); } } id.value=work; }

  • プルダウンからテキストボックスに入力

    プルダウンから選択したものをテキストボックスに表示させています。 <script type="text/javascript"> function displayText(thatOption, textId) { var text1 = document.getElementById(textId); text1.value = thatOption.title; } </script> <SELECT onchange="displayText(this.options[this.selectedIndex], 'text1');"> <option value="1" title=""></option>  #空欄 <option value="2" title="A">A</option> #大文字 <option value="3" title="a">a</option> #小文字 </SELECT> <input type="text" value="" id="text1"> プルダウンを2個や5個など複数用意して、それぞれ選択したものをテキストボックス1行に 続けて表示させたいです。 上記のプルダウンをA~Eまで用意した場合、[A b C D e]と表示させたり、Cは選ばず 空欄を選択した場合は、[A b D e]と表示させる事は可能でしょうか? また、テキストボックスにvalue="ZZ"と初期表示を入れて、その後に 続くように表示させたいです。 [ZZ A b C D e]とする事は可能でしょうか?

  • 大量のselect要素のvalueを短い文で取得

    select要素が100個あり、<script>側でoption要素のvalueをそれぞれ取得する場合、 下記のようにselect要素の数だけ変数で指定する方法以外に、 もっと短くしてパフォーマンスを上げる方法はありますでしょうか。 <select name="c100"> <option value="あ">あ</option> <option value="い">い</option> <option value="う">う</option> <option value="え">え</option> <option value="お">お</option> </select> </form> <input type="button" value="はい" onclick="function(this.form)" /> ~ <script> function(a){ var b1 = a.elements["c1"].options[a.elements["c1"].selectedIndex].value; var b2 = a.elements["c2"].options[a.elements["c2"].selectedIndex].value; var b3 = a.elements["c3"].options[a.elements["c3"].selectedIndex].value; var b4 = a.elements["c4"].options[a.elements["c4"].selectedIndex].value; var b5 = a.elements["c5"].options[a.elements["c5"].selectedIndex].value; var b6 = a.elements["c6"].options[a.elements["c6"].selectedIndex].value; var b7 = a.elements["c7"].options[a.elements["c7"].selectedIndex].value; var b8 = a.elements["c8"].options[a.elements["c8"].selectedIndex].value; var b9 = a.elements["c9"].options[a.elements["c9"].selectedIndex].value; var b10 = a.elements["c10"].options[a.elements["c10"].selectedIndex].value; var b11 = a.elements["c11"].options[a.elements["c11"].selectedIndex].value; var b12 = a.elements["c12"].options[a.elements["c12"].selectedIndex].value; var b13 = a.elements["c13"].options[a.elements["c13"].selectedIndex].value; var b14 = a.elements["c14"].options[a.elements["c14"].selectedIndex].value; var b15 = a.elements["c15"].options[a.elements["c15"].selectedIndex].value; var b16 = a.elements["c16"].options[a.elements["c16"].selectedIndex].value; var b17 = a.elements["c17"].options[a.elements["c17"].selectedIndex].value; var b18 = a.elements["c18"].options[a.elements["c18"].selectedIndex].value; var b19 = a.elements["c19"].options[a.elements["c19"].selectedIndex].value; var b20 = a.elements["c20"].options[a.elements["c20"].selectedIndex].value; var b20 = a.elements["c20"].options[a.elements["c20"].selectedIndex].value; var b21 = a.elements["c21"].options[a.elements["c21"].selectedIndex].value; var b22 = a.elements["c22"].options[a.elements["c22"].selectedIndex].value; var b23 = a.elements["c23"].options[a.elements["c23"].selectedIndex].value; var b24 = a.elements["c24"].options[a.elements["c24"].selectedIndex].value; var b25 = a.elements["c25"].options[a.elements["c25"].selectedIndex].value; var b26 = a.elements["c26"].options[a.elements["c26"].selectedIndex].value; var b27 = a.elements["c27"].options[a.elements["c27"].selectedIndex].value; var b28 = a.elements["c28"].options[a.elements["c28"].selectedIndex].value; var b29 = a.elements["c29"].options[a.elements["c29"].selectedIndex].value; var b30 = a.elements["c30"].options[a.elements["c30"].selectedIndex].value; ~

  • Flash5合計スクリプト

    初歩的な質問ですが、F5で合計スクリプトを作成したところ、どうもうまくいきません。 <仕組み> 「テキスト入力」に変数を指定し、合計をカウントするものです。 「  」変数a 「  」変数b ---------------合計 「  」変数c ボタンに以下を設定。ボタンで合計を算出する。 on (release) { var c=a+b; } 結果的には、a=1 b=1の場合 11となってしまいます。 で c=a*bやc=a-bしか計算されませんでした... どうかご教授くださいます。

  • エクセルで、入力数字を自動的に代入し結果表示させたい

    入力した数字を自動的に代入し、その結果をそれぞれ表示させるにはどうしたらよいのでしょうか。具体的には      A列         B列          C列 1行    10          20          A1またはB1を引っぱって表示 2行    30          40          C1がA1のときA2、C1がB1のときB2を表示 3行   C3結果表示   C3結果表示   C1+C2の計算式 A1、A2、B1、B2は手入力します。 C1でA1が代入された場合C2にはA2が代入され、C3はC1+C2を計算し、その結果40をA3に表示させる。 また、C1でB1が代入された場合C2にはB2が代入され、C3は計算結果60を表示させる。 というようにしたいのです。C1、C2、A3、B3にはどのような計算式を入れればよいのか教えてください。

  • ファイルメーカーPro6でテキストカラーの自動変更について

    ファイルメーカーPro6(MacOSX)を利用しています。 関数などを利用して、あるフィールドに何か入力があった場合は該当フィールドのテキストカラーが変わるようにしたいのですが、良い方法はないでしょうか? 例: テキストフィールドAに何も入力が無い場合、テキストフィールドB、Cはテキストカラー黒色。 テキストフィールドAに何か入力した場合、テキストフィールドB、Cのテキストカラーは赤色。

  • アクロバットのスクリプトで連番の前に任意の数字

    アクロバットのスクリプトで連番の前に任意の数字を入れる方法 var re = /.*\/|\.pdf$/ig; var filename = this.path.replace(re,""); try { for (var i = 1; i < this.numPages; i++) this.extractPages ({ nStart: i, cPath: "/C/test/test/"+filename+"_" + i +".pdf" }); } catch (e) { console.println("Aborted: "+e) } 上記のスクリプトで 連番が1桁の場合は頭に00をつけて 連番が2桁の場合は頭に0をつけて 連番が3桁の場合は頭に何もつけないようにするには どう記述すればよろしいいでしょうか? test_001.pdf test_010.pdf test_100.pdf このような感じになればいいです。 おわかりになるかたいますか? 詳しく書いていただけたら幸いです。 よろしくお願いします。

  • 抽出条件入力用テキストボックスが空白の場合の抽出条件

    SQL初心者です。 今あるテーブル(TABLE)に | VALUE_A | VALUE_B | VALUE_C | VALUE_D | ----------------------------------------- | 000 | AAA | AAA | AAA | | 001 | AAA | AAA | BBB | | 002 | AAA | BBB | AAA | | 003 | BBB | BBB | BBB | | 004 | BBB | BBB | NULL | のようなデータが入っているとします。 Web上から VALUE_B VALUE_C VALUE_D に対しそれぞれテキストボックス入力フィールドから値を入力し検索を行うようにしたいのです。 [VALUE_B]=AAA [VALUE_C]=AAA [VALUE_D]=AAA と入力されれば VALUE_A:000 を検索結果として出します。 [VALUE_B]=AAA [VALUE_D]=AAA と入力されれば VALUE_A:000 VALUE_A:002 を検索結果として出します。 [VALUE_B]=AAA だけが入力された場合は VALUE_A:001 VALUE_A:002 VALUE_A:003 を検索結果として出します。 つまり、フォームのテキストボックスに入力された条件で抽出し、入力が無い場合は全件抽出を行いたいのです。 この場合、どのようなSQLを組めばよいのかわかりません。ANDやORだけでは対応できないような気がします。Oracleを始めたばかりということもあり、どのような関数を使えばよいのかもわかりません。どなたかご教授いただけませんでしょうか??よろしくお願いします。

  • actionscript アルファベットを数値に変換できる?

    Flash Actionscriptの開発で困ってます。 テキストフィールド1とテキストフィールド2があります。それぞれのフィールドに入力されたアルファベットを数値に変換(例えばAと入力されたら1、Bなら2、Cなら3)して、A+B=3のように足し算して返すにはどうしたらよいでしょうか?? こういうのを覆面算?っていうんでしょうか。

    • ベストアンサー
    • Flash
  • PHPでフォームに表示させたCSVを更新したい

    現在以下のようなものを作っています。 1)csvファイル(内容は id,url,name )からデータを読み込み、 2)フォーム内のテキストフィールドに表示、 3)新規登録フォームからcsvのラストに1行増やす。 ここまではできたのですが、 4)テキストフィールドに読み込んだCSVデータの一部を修正する というのはどうすればいいのでしょうか? 現在、 $fp = fopen("link.csv", "r"); while ($linkdata = fgetcsv($fp, 1000, ',')){ list($a, $b, $c) = $linkdata; … }で、 <input name="id" type="text" value="$a"><input name="id" type="text" value="$b"><input name="id" type="text" value="$c"> こんな感じで表示されています。 チェックした行を削除というのと、 表示されたテキストフィールドの中を書き換えてsubmitで更新というのを作りたいのですが…

    • ベストアンサー
    • PHP

専門家に質問してみよう