Php 值点显示在只读文本框中
我在下面有一个代码,其中一列显示文本输入,第二列显示总分数,最后一列显示剩余分数。下表如下所示:Php 值点显示在只读文本框中,php,jquery,html,Php,Jquery,Html,我在下面有一个代码,其中一列显示文本输入,第二列显示总分数,最后一列显示剩余分数。下表如下所示: Marks Per Answer Total Marks Marks Remaining (blank text input) 4 4 (blank text input) 6 6 (blank disabled text input) 4
Marks Per Answer Total Marks Marks Remaining
(blank text input) 4 4
(blank text input) 6 6
(blank disabled text input) 4 4
但我的问题是,如果只读文本输入为空,它应该显示“Total Marks”列的值(在上面的示例中,只读文本输入的值为4)
此外,只读文本输入包含总分数,在“剩余分数”列下,这是不正确的,此行应显示0。(对于只读文本输入,其值为4,因此,如果我们在总分下用4减去该值,则禁用文本输入行的剩余分数应为0。)
因此,当用户访问页面时,该表应如下所示:
Marks Per Answer Total Marks Marks Remaining
(blank text input) 4 4
(blank text input) 6 6
(readonly text input = 4 (same value as under Total Marks)) 4 0
我的问题是,如何通过更改以下jquery来解决上述两个步骤:
$(function () {
//alert("here");
var questions = $('#markstbl td[class*="_ans"]').length;
//disable single entry
for (var i=0;i<=questions;i++){
if ($("[class*=q" + i + "_mark]").length == 1) {
//alert(t_marks);
var t_marks = $("[class*=q" + i + "_ans]");
var t_marksHtml = t_marks.html();
t_marks.html("0");
$("[class*=q" + i + "_mark]").val(t_marksHtml).attr('readonly', true);
//$("[class*=q"+i+"_mark]").attr('readonly',true);
}
}
//find each question set and add listeners
for (var i = 0; i <= questions; i++) {
$('input[class*="q' + i + '"]').keyup(function () {
var cl = $(this).attr('class').split(" ")[1]
var questionno = cl.substring(cl.indexOf('q') + 1, cl.indexOf('_'));
var tot_marks = $(".q" + questionno + "_ans_org").val();
//alert(tot_marks);
var ans_t = 0;
$("[class*=q" + questionno + "_mark]").each(function () {
var num = (isNaN(parseInt($(this).val()))) ? 0 : parseInt($(this).val());
ans_t += parseInt(num);
});
ans_t = tot_marks - ans_t;
//alert(ans_t);
//var fixedno = tot_marks;
var ans = ans_t;
var answerText = '<strong>' + ans + '</strong>';
$(".q" + questionno + "_ans").val(ans);
$(".q" + questionno + "_ans_text").html(answerText);
});
}
});
$(函数(){
//警报(“此处”);
变量问题=$(“#markstbl td[class*=”#ans“])。长度;
//禁用单个条目
对于(var i=0;i
这可能有助于:
$("[class*=q"+questionno+"_mark]").each(function(){
搜索名为q[X]\u mark的类
这条线呢
<input class="individualMarks q<?php echo$questionId?>_mark_0" q_group="1" name="answerMarks[]" id="individualtext" type="text" />
我不确定这是否是您的问题,但如果不正确,我将继续查找。因此我认为这应该是您所需要的全部:
if ($("[class*=q" + i + "_mark]").length == 1) {
//alert(t_marks);
var t_marks = $("[class*=q" + i + "_ans]");
var t_marksHtml = t_marks.html();
t_marks.html("0");
$("[class*=q" + i + "_mark]").val(t_marksHtml).attr('readonly', true);
//$("[class*=q"+i+"_mark]").attr('readonly',true);
}
你能包含一些完整的HTML,这样我就可以创建一个真正的数据吗?@JamesKleeh给我10分钟时间从视图源获取HTML,我将在我的question@JamesKleeh我已经包含了来自视图源的完整html,并将其包含在更新部分hi Cha下的问题中所以你是说把这行代码$(“[class*=q”+questionno+“\u-mark]”)改成$(“[class*=q”+questionno+“\u-mark]”)。每个(function(){
?是的,我试过了,但还是没有成功,你还有其他想法吗?嗨,詹姆斯,好的,我在我的应用程序和上面的问题中将你的jquery代码包括在我的jquery代码中。现在它确实改变了“剩余总分”对于只读文本输入行,设置为0,这很好。但是有两个小问题。第一个问题是,如果我单击只读文本框并按一个键,那么“剩余总分”下的数字0更改回其原始值。第二个问题是,它仍然没有在只读文本框中显示值。但你正在实现。你还有什么想法吗?投票赞成的回答我认为我缺少一些HTML。我看到了对_ansu_org的引用,但是我在任何地方都没有看到该输入元素。很抱歉,我没有显示完整的HTML,这是完整的html,再次抱歉
<input class="individualMarks q<?php echo$questionId?>_mark_0" q_group="1" name="answerMarks[]" id="individualtext" type="text" />
q[X]_mark_0
if ($("[class*=q" + i + "_mark]").length == 1) {
//alert(t_marks);
var t_marks = $("[class*=q" + i + "_ans]");
var t_marksHtml = t_marks.html();
t_marks.html("0");
$("[class*=q" + i + "_mark]").val(t_marksHtml).attr('readonly', true);
//$("[class*=q"+i+"_mark]").attr('readonly',true);
}