0

我正在从输入单选按钮调用一个函数并具有以下功能:

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

但是我的 this.value 不能正常工作。当我在页面中查找时,id 填充正确,但第二个值仍然显示 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可能无法评估您期望的东西,要找出(如果您有像 Element 检查器(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 回答