输入更改时出现问题,当ajax向php文件发送请求时,它会在输入中实现信息。
HTML:
<div class="col-xs-8">
<div class="form-group" id="kalb1">
<input type='text' id="galutinis2" name='mer[]' value="-" disabled>
<input type='text' name='ker[]' value="-" disabled>
<input type='text' name='ser[]' value="-" disabled>
<input type='text' name='per[]' value="-" disabled>
</div>
jQuery的:
$(document).on('input', '#galutinis2', function() {
var galutinis = $(this).attr('id');
alert(galutinis);
});
PHP实现输入:
if(isset($_POST['per']))) {
$produktas = $_POST['per'];
$infos = CalSkaiciuokle::where("id", $produktas);
foreach ($infos as $info) {
echo "<input type='text' id='galutinis2' name='mer[]' value=" .$info->name. " disabled>";
echo "<input type='text' name='ker[]' value=".$info->surname." disabled>";
echo "<input type='text' name='ser[]' value=".$info->city." disabled>";
echo "<input type='text' name='per[]' value=".$info->address." disabled>";
}
exit;
}
AJAX:
$(document).on('change', '.subcategory', function() {
var subcategory_id = $(this).attr('id');
//alert($("#"+subcategory_id).val());
$.ajax({
type: 'post',
url: 'ajaxLoader.php',
data: {
per:$("#"+subcategory_id).val()
},
success: function (response) {
document.getElementById("kalb"+parseInt(subcategory_id.match(/[0-9]+/)[0], 10)).innerHTML=response;
}
});
}); 哪里可以成为不警告价值的问题?
答案 0 :(得分:2)
我猜您正在替换原始表单,并且不会调用与“输入值更改”(blur
,change
等)相关的事件。您可以在AJAX回调中自己触发它们。
success: function(){
document.getElementById("kalb"+par ...
$('#galutinis2').trigger('input'); // or better use builtin events
}
答案 1 :(得分:0)
您是否已将jQuery代码包装在document.ready
中?例如:
$(document).ready(function(){
$(document).on('blur', '#galutinis2', function() {
var galutinis = $(this).attr('id');
alert(galutinis);
});
}); //END document.ready
另请注意,您必须保留blur()
事件的输入字段才能触发。
如果您想抓住个别按键活动,请尝试.keyup()
$(document).ready(function(){
$(document).on('keyup', '#galutinis2', function() {
var galutinis = $(this).attr('id');
alert(galutinis);
});
}); //END document.ready
答案 2 :(得分:0)
这样的东西?
<script>
var subcategory_id;
$(document).ready(function(){
$(document).on('change', '.subcategory', function() {
subcategory_id = this.id;
//alert($("#"+subcategory_id).val()); <-- does this work??
$.ajax({
type: 'post',
url: 'ajaxLoader.php',
data: {
per:$("#"+subcategory_id).val()
},
success: function (response) {
var num = parseInt(subcategory_id.match(/[0-9]+/)[0], 10);
alert('Num: '+num);
$('#kalb'+num).val(response);
}
});
});
}); //END document.ready
</script>
请注意,var subcategory_id
在您的AJAX success
函数中不可用,因此必须全局声明(在使用它的函数之外)
此外,您可能希望通过回显POST数据来测试您在ajaxLoader.php
文件中接收的内容:
<?php
die( $_POST['per'] );
修改success
功能:
success: function (response) {
alert(response);