0

入力ラジオボタンから関数を呼び出していますが、これがあります:

onClick=\"changeBilling('".$results['id']."', this.value)\"

しかし、私の this.value が正しく機能していません。ページを調べると、ID は適切に入力されていますが、2 番目の値は、関数を呼び出しているボタンの値ではなく、まだ this.value を示しています。

ブラウザー要素マネージャーでこれを確認します。

onclick="changeBilling('149', this.value)"

私は何を間違っていますか?

ラジオボタン:

<input type='radio' name='billed' value='Yes' onClick=\"changeBilling('".$results['id']."', this.value)\"/> Yes<br /><input type='radio' name='billed' value='No' onClick=\"changebilling('".$results['id']."', this.value)\" checked/> No

理想的な出力:

onclick="changeBilling('149', 'Yes')"
4

2 に答える 2

2

this.valueはクライアントによって javascrpt として評価されるため、php からそこに「焼き付けられた」値は表示されません。実行時にこれを確認する必要がありますthis.value。これが渡されるものなので、あなたは期待していますchangeBilling

onClick=\"alert('The value is: '+this.value)\"

発生する可能性のある問題は、this期待どおりに評価されない可能性があることです (要素インスペクター (chrome) や firebug (firefox) などの優れたデバッガーがある場合) を見つけるには、次のようにします。

 onClick=\"console.log(this)\"
于 2012-06-25T20:14:23.663 に答える
1

PHP でリテラル値を出力してみませんか。

echo "<input type='radio' name='billed' value='Yes' onClick=\"changeBilling('".$results['id']."', 'Yes')\"/> Yes<br /><input type='radio' name='billed' value='No' onClick=\"changebilling('".$results['id']."', 'No')\" checked/> No";

編集

あなたが何を期待しているのか完全にはわかりませんが、あなたが書いたコードに問題はないようです。この点を実証するには、このJSFiddleがどのように機能するかを示していますthis.value(これは PHP とは関係がないことに注意してください)。

于 2012-06-25T20:25:02.493 に答える