我有一个简单的表单,有一些输入,两个单选按钮和两个不同的隐藏div。div的显示取决于用户单击的按钮。假设用户选择了一个单选按钮,但表单的一个输入中存在错误。当我单击submit按钮,表单再次加载,显示错误时,我希望已选中previous choosen单选按钮。我通过输入代码中的php代码实现了这一点。现在我的问题是,当表单再次加载时,单选按钮被选中,但需要显示的隐藏div保持隐藏。我如何解决这个问题?非常感谢你的回答。
HTML代码:
<form method="post">
<input type="radio" name="button" id="button1" value="1" <?php if($_SERVER['REQUEST_METHOD'] == 'POST'){if(empty($error) && $button=="1"){ echo 'checked="checked"'; }} ?> />
<label>Button 1</label><br />
<input type="radio" name="button" id="button2" value="2" <?php if($_SERVER['REQUEST_METHOD'] == 'POST'){if(empty($error) && $button=="2"){ echo 'checked="checked"'; }} ?> />
<label>Button 1</label><br />
<div id="one">Div one</div>
<div id="two">Div two</div>
<input type="submit" value="submit" />
</form>
JQUERY代码:
$('#button1').click(function(){
if($(this).is(':checked')){
$('#one').show();
$('#two').hide();
}
});
$('#button2').click(function(){
if($(this).is(':checked')){
$('#one').hide();
$('#two').show();
}
});
PHP代码:
$error = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (!empty($_POST["button"])){
$button = $_POST["button"];
}
if (empty($_POST["button"])){
$error []= "Choose one option";
}
}
我不确定这是否是你所寻求的答案,但这是一个更好的方法来实现你的目标。在JQuery中,编写一个名为myForm\u validate()
的函数,并使用它验证输入。因此,根据你的例子,你会写:
function myForm_validate() {
//check for your two inputs to have values, in this case radio buttons
var foundErrors = false;
$("#myForm input").each(function() {
if($(this).is(":checked") == false) { //no choice was selected
foundErrors = true;
return false;
}
});
return foundErrors;
}
然后,在表单提交上编写一个函数。
$("#myForm").submit(function(event) {
var checkForErrors = myForm_validate();
if(checkForErrors == true) { //there were errors in the form
event.preventDefault(); //prevent the form from actually submitting
}
});
因此,在表单提交中,这段代码将根据validate函数中的条件检查错误。如果未发现错误,则继续提交。如果发现错误,将阻止提交。
重新加载页面时,用于检查div的函数不会运行,因为您已将它们绑定到click
事件。将单击事件函数移动到它们自己的函数中,并让它们在文档上运行。就绪
。
var showHide = function(){
if($('#button1').is(':checked')){
$('#one').show();
$('#two').hide();
}
if($('#button2').is(':checked')){
$('#one').hide();
$('#two').show();
}
};
$(document).ready(showHide);
$('input[name="button"]').click(showHide);
问题内容: 考虑: 提交表单时,如何确保下拉列表中的选定值保持选中状态?此表单位于WordPress(PHP)内部。 问题答案: 为了避免许多if-else结构,让JavaScript自动完成:
问题内容: 大家好,我有一个联系表格,验证码在那里。提交表格后,我想保留支票。我发布了文本框值,它显示正确,但复选框不起作用。这是我的代码。 提交表格后如何保留复选框? 问题答案: 更改 至 这将使复选框保持选中状态。
问题内容: 我正在尝试通过AJAX提交表单,而不是使用常规的POST提交。HTML只是一个标准格式,我的jQuery代码如下: (基于此答案) 我从Submit函数返回false,但是表单仍在提交,我不知道为什么。没有收到任何Firebug错误。 问题答案: 如果html设置正确,则您的代码可以正常工作。这是我的测试html(使用php),因此您可以将其与自己的进行比较。
问题内容: 我有一个表格。在该表格之外,我有一个按钮。一个简单的按钮,如下所示: 但是,当我单击它时,它会提交表单。这是代码: 该按钮应该做的就是编写一些JavaScript。但是,即使看起来像上面的代码一样,它也会提交表单。当我将标签按钮更改为跨度时,它可以完美工作。但不幸的是,它必须是一个按钮。有什么办法可以阻止该按钮提交表单?像例如 问题答案: 我认为这是HTML最令人讨厌的小特性。该按钮必
问题内容: 我有一个看起来像这样的表格: 当我绑定到表单的Submit()时,似乎无法访问用户单击的图像。因此,我试图绑定到单击图像本身(),该图像总是提交表单,无论我是否尝试 返回false; event.stopPropogation(); 要么 event.preventDefault(); 因为所有这些都是表单事件。 我应该将$ .post()附加到form.submit()事件上吗,如果
我想通过选择单选按钮,然后单击立即购买按钮,重定向到在线支付页面或钱包支付页面。当我点击buy now按钮时,表格也会提交。 这是一个订单页面,人们将填写表单,然后选择产品,然后选择付款类型。此页面将把数据带到数据库,然后将这些数据显示到下一页面,即钱包支付或在线支付。我是拉雷维尔的新手。如果有人能给出解决方案,那将非常有帮助。