我试图在我的查询中创建一个禁用计算的复选框是我的
表单代码:
<input type="hidden" name="stud_no[]" value="<?php echo
$row['student_no'];?>"> <input type="text" name="prelim[]"
value="<?php echo $row['prelim_pts']?>" id="prelim_<?php echo
$row['student_no'];?>" class="txtprelim" ></td> <td><input
type="text" name="midterm[]" value="<?php echo
$row['midterm_pts']?>" id="midterm_<?php echo $row['student_no'];?>"
class="txtmidterm" ></td> <td> <input type="text" name="final[]"
value="<?php echo $row['finals_pts']?>" id="final_<?php echo
$row['student_no'];?>" class="txtfinal" ></td> <td> <input
type="text" name="average[]" id="average_<?php echo
$row['student_no']; ?>" value="<?php echo $row['average_pts']; ?>"
readonly="readonly"> </td> <td><input type="checkbox"
name="disable[]" value="<?php echo $row['disable_comp'];?>"
class="dis"> </td>
现在这是我的jquery代码:
$(document).ready(function(){
p=""; m=""; f="";
$(".txtprelim").keyup(function(){ var id = $(this).attr("id").replace("prelim_","");
p = $("#prelim_" + id).val();
m = $("#midterm_" + id).val();
f = $("#final_" + id).val(); Compute( p,m,f, id); //alert($(".txtprelim").val());
});
$(".txtmidterm").keyup(function(){
var id=$(this).attr("id").replace("midterm_","");
p = $("#prelim_" + id).val();
m = $("#midterm_" + id).val();
f = $("#final_" + id).val();
Compute( p, m, f,id); //alert($(".txtmidterm").val());
});
$(".txtfinal").keyup(function(){
var id=$(this).attr("id").replace("final_","");
p = $("#prelim_" + id).val();
m = $("#midterm_" + id).val();
f = $("#final_" + id).val();
Compute( p, m, f, id);
//alert($(".txtfinal").val());
//alert($("f").val()); });
function Compute(p , m , f , studno){ // alert("p="+p+" m="+m+"
f="+f); var average="";
average = parseFloat(p * 0.3) + parseFloat(m * 0.3 )+ parseFloat(f * 0.4); $("#average_" +
studno).val(average.toFixed());
//alert(average); }
$("input[type='dis']").change ( function(){
var val =$(this).val();
if($(this).is(':checked'))
{
alert($(this).val());
}
});
});
答案 0 :(得分:0)
所以从我的理解,这段代码应该更好。在你的上一个函数中也没有type='dis'
。那是class
$(document).ready(function() {
p = "";
m = "";
f = "";
var computeValues = function(){
var id = $(this).attr("id").replace("prelim_", "").replace("midterm_", "").replace("final_", "");
p = $("#prelim_" + id).val();
m = $("#midterm_" + id).val();
f = $("#final_" + id).val();
Compute(p, m, f, id);
};
$("input").bind('keyup', computeValues);
function Compute(p, m, f, studno) {
var average;
average = parseFloat(p * 0.3) + parseFloat(m * 0.3) + parseFloat(f * 0.4);
$("#average_" + studno).val(average.toFixed());
}
$(".dis").change(function() {
var val = $(this).val();
if ($(this).is(':checked')) {
$("input").unbind('keyup', computeValues);
} else {
$("input").bind('keyup', computeValues).trigger('keyup');
}
});
});
一个小小的测试它http://jsfiddle.net/Spokey/nhcsT/
UPDATDE:
您可以在表单中添加<input type="hidden" id="changeme" value="0">
,当用户选择checkbox
时,hidden input
的值将更改为1
$(".dis").change(function() {
var val = $(this).val();
if ($(this).is(':checked')) {
$("input").unbind('keyup', computeValues);
$("#changeme").val('1');
} else {
$("input").bind('keyup', computeValues).trigger('keyup');
$("#changeme").val('0');
}
});