私はjQueryを初めて使用し、.replaceを使用して気の利いたテキスト置換を行うRegExの概念に出くわしました。
私のフォームには、テキストがテキストエリアに表示されるようにするチェックボックスがいくつかあります。フィールドとしていくつかのユーザー入力領域もあります。
このjQueryを使用して、特定のチェックボックスのテキストの一部をユーザー入力に置き換えることができますが、他のチェックボックスには置き換えられませんか? if/else 引数を使用して正規表現をトリガーし、置換することが重要だと考えていますが、残りを組み込む方法がわかりませんか?
これが私のフォームのモックアップです:
<div style="width: 500px;"><br> Static options:<br> <label id="_comLine100"><input id="comLine100" name="comLines" type="checkbox"> OPTION1 </label> <br> <label id="_comLine101"><input id="comLine101" name="comLines" type="checkbox"> OPTION2 </label> <br> Options which can be modified by user text:<br> <label id="_comLine102"><input id="comLine102" name="comLines" type="checkbox"> OPTION3 </label> <br> <label id="_comLine103"><input id="comLine103" name="comLines" type="checkbox"> OPTION4</label> <br> </div> <br> <input id="usrinput1" size="50" placeholder="Enter something to replace the word Text"> <br><br> <form> <input onclick="javascript:this.form.outPut2.focus();this.form.outPut2.select();"
value="すべて選択" type="button">
EDIT以下の提案に基づいた新しいスクリプトを次に示します。
$(document).ready(function(){
var comLines = {
comLine100: 'Text for option1 \n',
comLine101: 'Text for option2 \n',
comLine102: 'Text for option3 \n',
comLine103: 'Text for option4 \n'
};
var mytextbox = document.getElementById('outPut2');
var chosenComm = null;
var Inputs = document.getElementsByName("comLines");
for (var i = 0; i < Inputs.length; i++) {
Inputs[i].onchange = function() {
chosenComm = this;
printComment();
};
}
function printComment(){
if(chosenComm !== null){
var chxbox=chosenComm.id;
var uinput = document.getElementById('usrinput1');
if(uinput.value!=="" && (chxbox=="comLine102" || chxbox=="comLine103")){
mytextbox.value += comLines[chosenComm.id].replace(/Text/, $('#usrinput1').val()) + "\n";
// resets the radio box values after output is displayed
chosenComm.checked = false;
// resets these variables to the null state
chosenComm = null;
}
else {
mytextbox.value += comLines[chosenComm.id] + "\n";
// resets the radio box values after output is displayed
chosenComm.checked = false;
// resets these variables to the null state
chosenComm = null;
}
}
}
});
私の JSfiddle を参照してください: http://jsfiddle.net/bENAY/2/
今、私が望んでいたように動作します。説明と指導をしてくれた Eric S に感謝します!