-1

我想要一个用于将复选框 id 与 grails 中其他字段的值映射的 javascript 函数

我有一个带有复选框和成本字段的 gsp 页面,如下所示

<td>
                    <g:checkBox type="checkbox" class="select_all" name="counTestUnit" id="${testUnitInstance.id}" />
                    </td>


                    <td>
                        <g:textField name="cost"  maxlength="20" required="" id="${testUnitInstance.id}"  />
                    </td>

我想要一个 javascript 函数,在选中的复选框 id 与成本字段之间进行映射

4

2 回答 2

0

您需要复选框的更改功能,并为 id 添加 intital 以区分成本文本字段,因为 intital 稍后跟随 ID,您提取该 ID 并找到相应的成本字段。

"c_${testUnitInstance.id}"

例子

<g:checkBox type="checkbox" class="select_all" name="counTestUnit" id="c_${testUnitInstance.id}" onChange="FindCost('c_${testUnitInstance.id}')"/>

<g:javascript>    

function FindCost(chckboxname){  
console.log("check Status:"+$("#"+chckboxname).prop("checked"));
var arrayOfchckBoxId = chckboxname.split("_"); //parse the two parts of the name after _

var commnidforcheckandcost = arrayOfchckBoxId[1];

var initialname = arrayOfchckBoxId[0];

var currentCheckbox = "#"+chckboxname ;

console.log("ID:"+arrayOfchckBoxId[1]);
console.log("Name:"+currentCheckbox);

if(initialname == 'c'){
//display the corresponsing cost text field.

$("#"+commnidforcheckandcost").show() //display the cost with a give id like checkbox

 }

</g:javascript>

我想这应该可以解决您的问题以获得更多帮助,请参阅 javascript 控制台调试。

于 2013-09-13T07:06:10.887 回答
0

您可以执行以下操作

<td>
                    <g:checkBox type="checkbox" class="select_all" name="counTestUnit" id="checkbox${testUnitInstance.id}" onclick="mapCheckAndField(${testUnitInstance.id})"/>
                    </td>


                    <td>
                        <g:textField name="cost"  maxlength="20" required="" id="textField${testUnitInstance.id}"  />
                    </td>
<script>
function mapCheckAndField(testUnitId)
{
   //we know that now checkboxId is "checkbox"+testUnitId
   //and corresponding textField id is "textField"+testUnitId
   //Simply you will get the value of checkbox corresponding textField value as below
   $("#textField"+testUnitId).val()
}
</script>
于 2013-09-13T08:41:17.673 回答