Javascript 为什么“之后”在不同的浏览器中会产生不同的效果;onclick";
我想在页面加载时启用btn1和禁用btn2。当我在txtbox1中输入值时,单击btn1,btn1应被禁用并启用btn2。如果我单击btn2,那么btn2也应该被禁用Javascript 为什么“之后”在不同的浏览器中会产生不同的效果;onclick";,javascript,php,Javascript,Php,我想在页面加载时启用btn1和禁用btn2。当我在txtbox1中输入值时,单击btn1,btn1应被禁用并启用btn2。如果我单击btn2,那么btn2也应该被禁用 $value= $_POST['tb1'.$id]; echo '<form name="f1" method="POST" action="">'; echo '<input type="text" id="txtbox1'.$id.'" name="tb1'.$id.'" value="'.$value.'"
$value= $_POST['tb1'.$id];
echo '<form name="f1" method="POST" action="">';
echo '<input type="text" id="txtbox1'.$id.'" name="tb1'.$id.'" value="'.$value.'" />';
echo '<input type="submit" id="btn1'.$id.'" name = "btnstart'.$id.'" value="START" onClick="document.getElementById(\'btn2'.$id.'\').disabled=false;this.disabled=true;"/><input type="submit" id="btn2'.$id.'" name = "btnend'.$id.'" value="End" onClick="this.disabled=true;" disabled/>';
echo '</form>';
if ( isset( $_POST['tb1'.$id] ) ) {
echo $value;
}
$value=$\u POST['tb1'.$id];
回声';
回声';
回声';
回声';
如果(isset($_POST['tb1'.$id])){
echo美元价值;
}
当我使用Chrome时,我可以实现上面的按钮效果,但我无法获得txtbox1值。
当我使用IE和Firefox时,我可以得到txtbox1值,但按钮效果不是我想要的。这意味着,我在txtbox1中输入值,然后单击仅btn1,然后它将自动启用btn2,然后禁用两个,然后返回到原始状态(btn1启用,btn2禁用)
如何解决这个问题?千万不要这样写代码,这会让调试非常痛苦,只需做一个
脚本标记,然后像这样处理那里的所有事情,这里的要点是关于setAttribute
和removeAttribute
:
<?php
// your server side code
// finish declaring your variables like
$input_id = 'an_id';
$input_value = 'some_value';
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>testing</title>
</head>
<body>
<form name="f1" method="POST">
<input type="text" id="txtbox1<?php echo $input_id; ?>" name="tb1<?php echo $input_id; ?>" value="<?php echo $input_value; ?>" />
<input type="button" id="btn1<?php echo $input_id; ?>" name="btnstart<?php echo $input_id; ?>" value="START" />
<input type="button" id="btn2<?php echo $input_id; ?>" name="btnend<?php echo $input_id; ?>" value="End" disabled="disabled"/>
</form>
<script type="text/javascript">
btn1 = document.getElementById('btn1<?php echo $input_id; ?>');
btn2 = document.getElementById('btn2<?php echo $input_id; ?>');
btn1.onclick = function() {
console.log(this);
btn1.setAttribute("disabled","disabled");
btn2.removeAttribute("disabled");
return false;
};
</script>
</body>
</html>
测试
因为您有动态按钮名称,所以最好不要触碰它们来取消/启用您想要的功能:
使用jquery:
$(document).ready(function () {
/*Operations on the 1st button click */
$('#form').children("input[type='submit']:first").click(function () {
$(this).attr("disabled", "disabled"); /*disable the 1st button */
$('#form').children("input[type='submit']").eq(1).removeAttr("disabled"); /*enable the 2nd button */
});
/*Operations on the 2nd button click */
$('#form').children("input[type='submit']").eq(1).click(function () {
$(this).attr("disabled", "disabled");
});
});
另外:给你的表单一个id,比如:
echo '<form name="f1" id="form" method="POST" action="">';
/* check the form id tag ^^ here*/
echo';
/*在此处检查表单id标记^*/
但你将无法看到它的全部功能 您的代码第5行有一个输入错误。修复了输入错误Thankyou@Daedalus你能帮我吗?echo'测试值";代码>-您的引号不匹配。它只是回显一些文本。所以我不需要再进行onclick了?只需
?@user3118482:另外,请确保将jquery文件添加到html@user3118482当前位置如果你不懂任何部分…我还在这里,你可以问D页面loadlet us上仍启用两个按钮