0
function setReplicate()
{
$('.replicate').live("click",function(){
var nm=$(this).attr('name');
var cntr=$(this).attr('cntr');
var vpmo=$(this).attr('vpmo');
var vl=$(this).parent().prev().find("select").val();
$('[name="'+nm+'"][vpmo="'+ vpmo + '"]').each(function() {
if ($(this).attr("cntr") >= cntr)
$(this).parent().prev().find("select").val(vl);
});
});
}
有一个系统分配给项目的项目编号。每个系统都有关于它的细节,并通过循环遍历表输出。表格中有一个选择列表 - 有些列表会预填充值,但其他列表则不会。在选择列表和一个带有jQuery选择器的图标绑定在一起,以便单击图标时,选择列表中的值将应用于项目中的其他系统。只要选择列表中的值没有预先填充的值(在页面加载期间从数据库中读取 - noajax或其他操作正在发生),此函数可以很好地工作。没有错误产生,如果我把警报,我得到我期望的值,直到这个jQuery语句在做什么?
if ($(this).attr("cntr") >= cntr)
$(this).parent().prev().find("select").val(vl);
});
所以我怀疑这个问题在这里。
下面的代码为一个ColdFusion定制标记产生,这就是FF看到当我认为生成的源代码:
<select name="resource" id="resource_12345_200002" class="resource_12345" selection="">
<option>Donald Duck</option
<option>Mickey Mouse</option>
...
<option>Goofy</option>
</selected>
<select name="resource" id="resource_12345_200003" class="resource_12345" selection="Donald Duck">
<option select="selected">Donald Duck</option>
<option>Mickey Mouse</option>
...
<option>Goofy</option>
</select>
的值,“唐老鸭”应该能够被施加到剩余的从列表中和下面的这一点中选择项目(因此,cntr> = cntr值的原因。)
我在办公室里有人会在早上和我一起看这个,所以不要花太多时间很多时候看着这个,我只是希望能够领先一步
TIA
> =将使用数字。比较文本字符串将不会对您有用。你真的想在琴弦之间进行比较?另外我没有看到任何名为cntr的html属性,以便返回null。 – 2011-05-02 22:15:35
我的标记中没有看到'cntr'或'vpmo'属性,所以如果您提供了该标记,它将帮助我们帮助您。 @Thomas,如果'cntr'与长度相同的数字字符串进行比较,它将工作...例如'if('1'<'5'){alert('true'); } //提醒true',但是'if('11'<'2'){alert('true'); } //提醒true'也会提醒true。 – Mottie 2011-05-02 22:45:48
@ thomas-brashington @fudgey cntr是计数器的缩写,数字长度相同。一个数字的例子是100005. VPMO只是一个文本字符串变量。 '' – HPWD 2011-05-03 13:46:12