无法获取通过 ajax 在提交处理程序中提交的表单文本字段的值
Cannot get value of text field of form which is submitted through ajax inside submit handler
我正在尝试获取已通过 ajax 提交的文本框的值,但是当我尝试在控制器方法中获取其值时,它 return 什么也没有。
这是我的AJAX函数和控制器方法:
jQuery("#frm_xyz").validate({
rules: {
otp: {
required: true
},
....
....
submitHandler: function(form,event) {
event.preventDefault();
var from_url=jQuery(form).attr('action');
jQuery.ajax({
url: from_url,
type: "POST",
data: new FormData(document.getElementById("frm_xyz")),
cache: false,
processData: false,
success: function(data) {
}
});
}
});
HTML:
<?php echo form_open('verify-verification-otp',array('id'=>"frm_xyz")); ?>
<input type="text" name="otp" placeholder="OTP" class="form-control" />
<br />
<input type="submit" name="submit" id="btn_verify_contact" class="btn btn-info" value="Verify OTP" />
<?php echo form_close(); ?>
但是当我尝试在控制器中获取文本框的值时,我没有得到该值!
PHP:
public function verify_otp()
{
$otp = $this->input->post('otp');
print_r($otp);
die();
}
这可能是由于多种原因造成的 -
将表单方法设置为POST
-
<?php
echo form_open('verify-verification-otp',array('id'=>"frm_xyz", 'method'=>"POST"));
?>
在发送 formData 时将 contentType
设置为 false
或 jquery 默认值将覆盖它。
jQuery.ajax({
url: from_url,
type: "POST",
data: new FormData(document.getElementById("frm_xyz")),
cache: false,
processData: false,
contentType: false,
success: function(data) {
}
})
您不需要 formData,因为您没有发送任何文件,只需使用
serialize
你应该可以开始了。 Reference
jQuery.ajax({
url: from_url,
type: "POST",
data: $('#frm_xyz').serialize(),
cache: false,
dataType: 'JSON',
success: function(data) {
}
})
看看对你有没有帮助。
我正在尝试获取已通过 ajax 提交的文本框的值,但是当我尝试在控制器方法中获取其值时,它 return 什么也没有。
这是我的AJAX函数和控制器方法:
jQuery("#frm_xyz").validate({
rules: {
otp: {
required: true
},
....
....
submitHandler: function(form,event) {
event.preventDefault();
var from_url=jQuery(form).attr('action');
jQuery.ajax({
url: from_url,
type: "POST",
data: new FormData(document.getElementById("frm_xyz")),
cache: false,
processData: false,
success: function(data) {
}
});
}
});
HTML:
<?php echo form_open('verify-verification-otp',array('id'=>"frm_xyz")); ?>
<input type="text" name="otp" placeholder="OTP" class="form-control" />
<br />
<input type="submit" name="submit" id="btn_verify_contact" class="btn btn-info" value="Verify OTP" />
<?php echo form_close(); ?>
但是当我尝试在控制器中获取文本框的值时,我没有得到该值!
PHP:
public function verify_otp()
{
$otp = $this->input->post('otp');
print_r($otp);
die();
}
这可能是由于多种原因造成的 -
将表单方法设置为
POST
-<?php echo form_open('verify-verification-otp',array('id'=>"frm_xyz", 'method'=>"POST")); ?>
在发送 formData 时将
contentType
设置为false
或 jquery 默认值将覆盖它。jQuery.ajax({ url: from_url, type: "POST", data: new FormData(document.getElementById("frm_xyz")), cache: false, processData: false, contentType: false, success: function(data) { } })
您不需要 formData,因为您没有发送任何文件,只需使用
serialize
你应该可以开始了。 ReferencejQuery.ajax({ url: from_url, type: "POST", data: $('#frm_xyz').serialize(), cache: false, dataType: 'JSON', success: function(data) { } })
看看对你有没有帮助。