Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么“之后”在不同的浏览器中会产生不同的效果;onclick";_Javascript_Php - Fatal编程技术网

Javascript 为什么“之后”在不同的浏览器中会产生不同的效果;onclick";

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.'"

我想在页面加载时启用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.'" />';
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上仍启用两个按钮