使用其他字段值设置表的选中字段值

时间:2016-12-28 16:09:03

标签: jquery apex

我在jQuery中遇到了一些麻烦。 我在一个有3列的表中有一些行(复选框,名称,数量) 我桌子上面还有一个字段。 在这里,我想将此字段的值复制到选中复选框的金额字段中。 请参阅屏幕截图,我想将值以黄色显示在表格的选中字段中。

ddd

        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());
                });
    }

我已经尝试了这个,但我不知道如何穿上所选领域。

感谢开发。

HTML

1 个答案:

答案 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',这是正常的价值被复制到处。

希望这有帮助:)