Javascript onClick clear在php echo中不起作用

时间:2013-05-24 06:53:39

标签: php javascript

这是没有php echo的代码,它可以工作。

<tr id='row1'>
<td><input type="text" name="date_day[]" id="date_day1" class="row_changed1"size="1"></td>
<td>
<a href="javascript://" onClick="clearChildren(document.getElementById('row1'))">Clear</a>
</td>
</tr>

但我必须在php echo

中使用相同的内容

试过这个

 echo "<tr id='row11'>

 <td>
 <input type='text' name='date_day[]' id='date_day1' class='row_changed1' value='" .$post_date_day. "' size='1'>
 </td>

 <td>
 <input type='text' name='entry_id[]' id='entry_id1' class='row_changed1' size='5' value='".$post_entry_id ."' >
 </td>

 <td>
 <input type='text' name='row_id[]' id='row_id1' value='" .$post_row_id ."' size='1'>
 </td>

 <td>
 <a href=\"javascript://\" onClick=\"clearChildren(document.getElementById('row11'))\">Clear</a>

 </td>

 </tr>";

但不清楚。可能是因为'"的使用不正确,但无法理解什么是正确的方法。通过实验将'更改为",反之亦然,但没有成功。

clearChildren功能

function clearChildren(element) {
for (var i = 0; i < element.childNodes.length; i++) {
var e = element.childNodes[i];
if (e.tagName) switch (e.tagName.toLowerCase()) {
case 'input':
switch (e.type) {
case "radio":
case "checkbox": e.checked = false; break;
case "button":
case "submit":
case "image": break;
default: e.value = ''; break;
}
break;
case 'textarea': e.value = ''; break;
case 'select': e.selectedIndex = -1; break;
default: clearChildren(e);
}
}
}

查看源(已选择)就是这个

input name="date_day[]" id="date_day1" class="row_changed1" value="" size="1" type="text">

<input name="entry_id[]" id="entry_id1" class="row_changed1" size="5" value="24/1305" type="text">

<input name="row_id[]" id="row_id1" value="24" size="1" type="text">

<a href="javascript://" onclick="clearChildren(document.getElementById('row11'))">Clear</a>

5 个答案:

答案 0 :(得分:1)

echo "<table><tr id='row11'>

 <td>
 <input type='text' name='date_day[]' id='date_day1' class='row_changed1' value='' size='1'>
 </td>

 <td>
 <input type='text' name='entry_id[]' id='entry_id1' class='row_changed1' size='5' value='' >
 </td>

 <td>
 <input type='text' name='row_id[]' id='row_id1' value='' size='1'>
 </td>

 <td>
 <a href=\"javascript://\" onClick=\"clearChildren(document.getElementById('row11'));\">Clear</a>

 </td>

 </tr></table>";

试试这个。我认为这个问题是由于没有正确的表结构而出现的。

答案 1 :(得分:1)

如果你想把你的html作为php变量,你可以使用以下方法:

$post_date_day =111;
$html = <<< EOD
<tr id='row1'>
    <td>
        <input type='text' name='date_day[]' id='date_day1' class='row_changed1' value="$post_date_day" size='1'>
    </td>
    <td>
        <a href="javascript:void(0)" onClick="clearChildren(document.getElementById('row1'))">Clear</a>
    </td>
</tr>
EOD;

echo $html;

这将使您的代码保持清洁。

答案 2 :(得分:1)

我能够通过将html代码包装在标签中来解决您的问题。该函数已正确执行,可以访问echo语句中的DOM元素。

<?php
echo "
    <table>
        <tr id='row11'>
             <!-- put your td's here.... -->
             <td>
                  <a href=\"javascript://\" onClick=\"alert(document.getElementById('row11'))\">Clear</a>
             </td>
        </tr>
    </table>";

&GT;

答案 3 :(得分:0)

你已经用“开始你的PHP代码,你应该写下以下行

 <a href=\"javascript://\" onClick=\"clearChildren(document.getElementById('row11'))\">Clear</a>

应该是: -

<a href='javascript:void(0)' onclick='clearChildren(document.getElementById(\"row11\"))'>Clear</a>

只要有可能,您应该使用列的id或行。

答案 4 :(得分:0)

不知道但是也许它是clearChildren括号中的值,即在()中,document.getElementById('row11');返回null,当我只写'row11'时它返回它...

对不起,如果还不够,我主要用php / mysql编写,有点js / jquery ...