在我的表单中,有2个提交按钮(保存和退出,下一个)&远程检查电子邮件地址重复。它工作正常。提交表单时,我没有点击哪个提交按钮。
form.php的
<form method="post" action="" id="user_reg_form" name="user_reg_form">
<input class="form-control" id="user_id" value="<?php echo ($user->user_id!='')? $user->user_id:'0'; ?>" type="hidden" name="user_id">
<div class="no-padding">
<div class="col-md-12">
<div class="form-group no-margin">
<label>Email:</label>
<input type="text" class="form-control" name="email" id="email" value="<?php echo ($user->email!='')? $user->email:''; ?>" maxlength="50">
</div>
</div>
<div class="col-md-6">
<div class="form-group no-margin">
<label> Name</label>
<input type="text" class="form-control" name="name" id="name" value="<?php echo ($user->name!='')? $user->name:''; ?>" maxlength="50">
</div>
</div>
<div class="footer-btn" style="text-align:left;">
<input type="submit" name="save_exit" id="save_exit" class="btn btn-primary" value="Save & Exit"/>
<input type="submit" name="next" id="next" class="btn btn-success" value="Next"/>
<a href="<?=base_url('home/user')?>" class="btn btn-default">Cancel</a>
</div>
</form>
jquery验证码:
$("#reg_form").validate({
rules: {
email:{
required:true,
remote:
{
url: "<?php echo base_url('home/check_email_duplication')?>",
type: "post",
data: { 'user_id': function() { return $("#user_id").val()},'email': function() { return $("#email").val()}},
},
},
name: "required",
},
});
表单提交后打印$ _POST数组:
用户控制器操作:
public function user_reg()
{
print_r($_POST);
}
按钮1点击:
Array (
[user_id] => 14
[email] => test@test.com
[name] => yyyy
)
按钮2点击:
Array (
[user_id] => 14
[email] => test@test.com
[name] => yyyy
)
但是我需要$ _POST数组中低于预期的响应: 需要提交按钮值以找出哪个提交按钮。
按钮1点击:
Array (
[user_id] => 14
[email] => test@test.com
[name] => yyyy
[next] => Next
)
按钮2点击:
Array (
[user_id] => 14
[email] => test@test.com
[name] => yyyy
[save_exit] => Save & Exit
)
答案 0 :(得分:0)
使用按钮type="submit"
,您将直接提交表单(无论您点击哪个按钮都无关紧要。)
因此,您的按钮不是输入元素,这就是您在提交表单后看不到预期值的原因。
你可以创建隐藏字段,根据按钮点击填写一些值然后你知道你点击了哪个按钮,或者创建下面的jQuery函数
function test() {
let input1 = $('#input1).val();
.
.
.
$('#form).submit();
}
您的提交按钮更改按钮类型,调用您的功能,如onClick="return test()"
答案 1 :(得分:0)
最后,我找到了适合我的答案。
jquery代码有变化。我添加了2个更改忽略:[] &amp;远程条件下的 async:false 解决了我的问题。
jquery表单验证码:
$("#reg_form").validate({
ignore: [],
rules: {
email:{
required:true,
remote:
{
url: "<?php echo base_url('home/check_email_duplication')?>",
type: "post",
data: { 'user_id': function() { return $("#user_id").val()},'email': function() { return $("#email").val()}},
async: false,
},
},
name: "required",
},
});