将登录表单的图片提交按钮改为普通按钮后功能失效问题咨询
解决表单图片按钮换普通按钮后无法提交的问题
哦,这个问题我太熟悉了!你把提交按钮从type='image'换成type='button'后表单失去提交功能,核心原因是这两种按钮的默认行为完全不同:
<input type='image'>本质是提交按钮的变体,点击它会自动触发表单的提交动作,和标准的submit按钮功能一致,只是用图片作为按钮外观。<input type='button'>是一个“无默认行为”的纯按钮,它本身不会触发表单提交,只是一个可点击的交互元素。
给你两种简单的解决方案:
方案1:直接改用submit类型按钮(推荐)
这是最简洁的方法,只需要把按钮的type从button改成submit,就能让按钮自动具备提交表单的功能,后端接收参数的逻辑也不需要修改:
修改后的完整代码:
$form= " <form method='post' action='/login.php'> <b>Name:</b><br><input type='text' name='name' size='19' class='login'><br><b>Password:</b><br><input type='password' name='password' size='19' class= 'login'><br> <img src='/layout/blank.gif' height='6' width='1' alt='blank'><br> <input type='hidden' name='redir' value='$redir'> <input type='submit' name= 'action' value='Go' style='vertical-align: middle;' title='Login'> (<a href='/lostdetails.php' class= 'menu'>Lost Details?</a>) </form>";
方案2:给button类型按钮添加提交事件(适合需要JS前置操作的场景)
如果必须保留type='button'(比如需要先执行JS验证再提交),可以给按钮添加onclick事件,手动调用表单的submit()方法:
修改后的完整代码:
$form= " <form method='post' action='/login.php'> <b>Name:</b><br><input type='text' name='name' size='19' class='login'><br><b>Password:</b><br><input type='password' name='password' size='19' class= 'login'><br> <img src='/layout/blank.gif' height='6' width='1' alt='blank'><br> <input type='hidden' name='redir' value='$redir'> <input type='button' name= 'action' value='Go' style='vertical-align: middle;' title='Login' onclick='this.form.submit();'> (<a href='/lostdetails.php' class= 'menu'>Lost Details?</a>) </form>";
两种方案都能解决你的问题,优先推荐方案1,因为它不需要额外的JavaScript代码,兼容性更好,逻辑也更清晰。
内容的提问来源于stack exchange,提问作者Rawlfer
相关产品推荐
相关产品推荐

