フォームにフィールドを追加するためにjqueryを使用しています。「追加」ボタンを使用して「繰り返し可能な」フィールドを追加します。
コードは
$(".add-attacker-scores").click(function() {
count = count + 1;
$('#atacker_score_items').append('<li><span class="sort hndle"><label>team :<input type="text" name="attacker_scores[' + count + '][team]" size="30" value=""/></label><label>flags :<input type="text" name="attacker_scores[' + count + '][flags]" size="10" value=""/></label><label>phone homes :<input type="text" name="attacker_scores[' + count + '][phone]" size="10" value=""/></label><label>Injects :<input type="text" name="attacker_scores[' + count + '][injects]" size="10" value=""/></label><span class="remove">Remove</span></li>');
var temp = <? echo implode('',explode("\n",Print_attacker_scores('count') )); ?>;
temp = temp.replace(/count/g, count);
$('#atacker_score_items').append(temp);
return false;
});
Print_attacker_scoresのコードは次のとおりです。
function Print_attacker_scores($cnt, $p = null) {
if ($p === null){
$a = $b = $c = $d = '';
}else{
$a = $p['team'];
$b = $p['flags'];
$c = $p['phone'];
$d = $p['injects'];
}
return <<<HTML
<li><span class="sort hndle"></span>
<label>team :
<input type="text" name="attacker_scores[$cnt][team]" size="30" value="$a"/>
</label>
<label>flags :
<input type="text" name="attacker_scores[$cnt][flags]" size="10" value="$b"/></label>
<label>phone homes :
<input type="text" name="attacker_scores[$cnt][phone]" size="10" value="$c"/></label>
<label>injects :
<input type="text" name="attacker_scores[$cnt][injects]" size="10" value="$d"/></label>
<span class="remove">Remove</span>
</li>
HTML
;
}
Firefoxでは機能しますが、Chromeでは機能しません。
次に、エラーがスローされることに気付きました。NS_ERROR_XPC_BAD_CONVERT_JS:JavaScript引数arg0を変換できませんでした[nsIDOMDocumentFragment.appendChild]
なぜこれが起こっているのですか?Web全体からコードをコピーしましたが、次の行がわからないため、修正できます。
var temp = <? echo implode('',explode("\n",Print_attacker_scores('count') )); ?>;
temp = temp.replace(/count/g, count);
つまり、これはPrint_scores_functionによって生成されたhtmlを読み取り、各行で配列を作成します。次に、配列内のすべての項目を含む文字列を生成します。次に、カウント数を置き換えます¿ なぜそうなっているのかわかりません。たぶんそれをもっと簡単にする別の方法がありますか?
(/ count / g、count)は正規表現ですか?
私は何が間違っているのですか?