我在jQuery中遇到了一些麻烦。 我在一个有3列的表中有一些行(复选框,名称,数量) 我桌子上面还有一个字段。 在这里,我想将此字段的值复制到选中复选框的金额字段中。 请参阅屏幕截图,我想将值以黄色显示在表格的选中字段中。
Assign Quota to Sales :
<apex:inputText id="ValueToCopy" value="{!ForecastingQuota.QuotaAmount}" required="false">
</apex:inputText>
<apex:commandButton value="Assign to Selected Users" reRender="allquotas" onclick="copyQuotaAmount();"/>
<apex:pageBlockSection columns="4" id="allquotas">
<apex:pageBlockTable value="{!allthequotas}" id="table" var="key">
<apex:facet name="header">
<input type="checkbox" id="checkAllBox" onchange="toggleCheckAll(this)"/> Select All
</apex:facet>
<apex:column>
<apex:inputCheckbox styleClass="selectInput"/>
</apex:column>
<apex:column headerValue="Name">
<apex:outputField value="{!key.QuotaOwnerId}"/>
</apex:column>
<apex:column headerValue="Quota">
<apex:inputField value="{!key.QuotaAmount}" required="false" id="test"/>
</apex:column>
</apex:pageBlockTable>
<apex:pageBlockTable value="{!allthequotas2}" var="key2">
<apex:facet name="header">
<input type="checkbox" id="checkAllBox2" onchange="toggleCheckAll2(this)"/> Select All
</apex:facet>
<apex:column>
<apex:inputCheckbox styleClass="selectInput2"/>
</apex:column>
<apex:column headerValue="Name">
<apex:outputField value="{!key2.QuotaOwnerId}"/>
</apex:column>
<apex:column headerValue="Quota">
<apex:inputField value="{!key2.QuotaAmount}" required="false" id="test"/>
</apex:column>
</apex:pageBlockTable>
<apex:pageBlockTable value="{!allthequotas3}" var="key3">
<apex:facet name="header">
<input type="checkbox" id="checkAllBox3" onchange="toggleCheckAll3(this)"/> Select All
</apex:facet>
<apex:column>
<apex:inputCheckbox styleClass="selectInput3"/>
</apex:column>
<apex:column headerValue="Name">
<apex:outputField value="{!key3.QuotaOwnerId}"/>
</apex:column>
<apex:column headerValue="Quota">
<apex:inputField value="{!key3.QuotaAmount}" required="false" id="test"/>
</apex:column>
</apex:pageBlockTable>
<apex:pageBlockTable value="{!allthequotas4}" var="key4">
<apex:facet name="header">
<input type="checkbox" id="checkAllBox4" onchange="toggleCheckAll4(this)"/> Select All
</apex:facet>
<apex:column>
<input type="checkbox" styleClass="selectInput4"/>
</apex:column>
<apex:column headerValue="Name">
<apex:outputField value="{!key4.QuotaOwnerId}"/>
</apex:column>
<apex:column headerValue="Quota">
<apex:inputField value="{!key4.QuotaAmount}" required="false" id="test"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
<script type="text/javascript">
function copyQuotaAmount()
{
$("input[type=checkbox][checked]").each(function(){
$("input[id$='test']").val($("input[id$='ValueToCopy']").val());
});
}
我已经尝试了这个,但我不知道如何穿上所选领域。
感谢开发。
答案 0 :(得分:0)
就像我说的,我不知道顶点,但这里有一个大致的想法:
一旦你能够获得所选的复选框,你需要在每个复选框和他的跟随输入之间建立关系:所以你需要为每个复选框提供一个唯一的ID:如下所示:
<input type="checkbox" data-inputid="val1">
<input type="text" id="val1">
<input type="checkbox" data-inputid="val2">
<input type="text" id="val2">
然后你可以使用
的值数据inputid
设置值:
function copyQuotaAmount()
{
$("input[type=checkbox]:checked").each(function(){
// $(this) refers to the current checked box in loop
var inputid = $(this).data('inputid');
var valuetocopy = $('#ValueToCopy').val();
// if you can force the id of the input field to a specific value then use this
$('#' + inputid).val(valuetocopy);
// else if you can't force the value (then based on your html output), you must use this
$("input[type='text'][id$='" + inputid + "']").val(valuetocopy)
});
}
因此,即使您获得所选的复选框,您也会循环选中已选中的元素,但之后您选择了id="test"
的所有字段,并且因为您的所有输入都具有id ='test',这是正常的价值被复制到处。
希望这有帮助:)