【发布时间】:2021-05-10 15:47:27
【问题描述】:
您好,我想通过 POST 发送 html 选择选项禁用属性,并在输入表单中通过 onclick 启用选择选项属性。 例如我有:
<script>
function checked(){
var sel = document.getElementById("table A");
if(sel.options[sel.selectedIndex].text=='AAAA'){
document.getElementById('table B').disabled = false;
}
}
</script>
<?php
print("<form method=\"POST\">");
<print("<tr><th>Table A</th><td>
<select id='table A' name='table1'>
<option value=' '>Select</option>
<option name='AAAA' value='A' onclick=\"checked()\">AAAA</option>
<option name='BBBB' value='B'>BBBB</option>
</select></td></tr>");
print("<tr><th>Table B</th><td>
<select id='table B' name='table2' disabled>
<option value=' '>Select</option>
<option name='BBB' value='B'>BBBB</option>
<option name='CCC' value='C'>CCCC</option>
</select></td></tr>");
print("<tr><td><input type=\"submit\" id=\"save\" name=\"save\" value=\"Save\" ></td></tr>");
if(isset($_POST['save'])){
if(document.getElementById("table B").disabled){
return ' ';
}else{
$type_modify=$_POST['table B'];
}
?>
现在,如果我不禁用选择表单表 B,我想用 post ' ' 发送。如果我单击选择选项名称='AAAA',我希望使用 id='table B' 启用选择。我的代码不起作用。为什么?
【问题讨论】:
-
在
select上尝试onchange而不是option上的onclick,对于初学者。这回答了你的问题了吗? Is there an onSelect event or equivalent for HTML <select>? -
另外,
if(isset($_POST['save'])){ if(document.getElementById("table B").disabled){你在这里混合了 PHP 和 Javascript。 PHP 无法访问 DOM。 -
哦,不。我不能混合 PHP 和 Javascript。我该怎么做?我可以仅使用 php 来启用输入表单吗?
-
您不能将 JS 语法、函数(如
getElementById)或对象(如document)解析为 PHP 并期望它们能够正常工作。否则,你当然可以用 PHP 生成 JS。假设您的错误报告已打开,您应该会收到上述错误。你需要做的是例如有一个onsubmitjavascript,其中包含其他数据,否则不会在您的表单中提交。 -
$type_modify是如何使用的? PHP 的其余部分应该只是 HTML。您还应该坚持使用一种封装方法,属性的双引号或单引号,不过这是个人喜好。
标签: javascript php