2014-09-28 10 views
0

테이블에서 필드 값을 가져와야합니다. 나는 필드 ID를 얻고 있지만 그 필드의 값을 얻으면 오류가 발생합니다. 나는 이것에 대해 전혀 모른다. 나는 그것을 고글했지만 변수가있는 예제는 없다. 누구든지 제발 여기에 가치를 얻을 도와 줄래?! 여기 내 시도는 다음과 같습니다 : 여기 jquery에서 변수를 사용하여 필드 값 가져 오기

function setTotalAmount(id){ 
      var rateField = id.replace(".AMOUNT", ".RATE"), 
      rateSelector = "'#"+rateField+"'", 
      rate = $(rateSelector).val(); 
      alert(rate) 
     } 

내 HTML ::

first template >> 

    <script type="text/javascript"> 
    function setTotalAmount(id){ 
     var rateField = id.replace(".AMOUNT", ".RATE"), 
       rateSelector = "#"+rateField, 
       rate = $(rateSelector).val(); 
     alert(rate) 
    } 

    var childCount = ${up_Proc_MasterInstance?.upDirectProcurementDetails?.size()} + 0; 
    $('.delButton').live('click', function() { 
//find the parent div 
     var prnt = $(this).parents(".detail-div"); 
//find the deleted hidden input 
     var delInput = prnt.find("input[id$=deleted]"); 
     delInput.attr('value', 'true'); 
//hide the div 
     prnt.hide(); 
    }); 
    function addChild() { 
//debugger; 
     var clone = $("#detail_clone").clone(); 
     var htmlId = 'upDirectProcurementDetails[' + childCount + '].'; 

     clone.find("input[id$=id]").attr('id', htmlId + 'id').attr('name', htmlId + 'id'); 
     clone.find("input[id$=deleted]").attr('id', htmlId + 'deleted').attr('name', htmlId + 'deleted'); 
     clone.find("input[id$=new]").attr('id', htmlId + 'new').attr('name', htmlId + 'new').attr('value', 'true'); 

     clone.find("input[id$=RATE]").attr('id', htmlId + 'RATE').attr('name', htmlId + 'RATE'); 
     clone.find("input[id$=AMOUNT]").attr('id', htmlId + 'AMOUNT').attr('name', htmlId + 'AMOUNT'); 
     clone.find("input[id$=TOTAL_PRICE]").attr('id', htmlId + 'TOTAL_PRICE').attr('name', htmlId + 'TOTAL_PRICE'); 

     clone.attr('id', 'detail' + childCount); 

     $("#detailList").append(clone); 
     clone.show(); 
     childCount++; 
    } 
</script> 
<div class="" style="border: solid 1px;border-radius: 5px"> 
    <table style=" border-radius:5px;table-layout: fixed" id="detailList" class="table table-bordered table-striped table-hover table-condensed"> 
     %{--<table id="example" class="dataListTable table table-bordered table-striped table-hover table-condensed">--}% 
     <tr><th>ITEM ID</th><th>ITEM NAME</th><th>ITEM DETAILS</th><th>RATE</th><th>AMOUNT</th><th>TOTAL AMOUNT</th><th width="44px">Action</th></tr> 
     <g:render template='detail' model="['result':null,'i':'_clone','hidden':true]"/> 
     <g:each var="upDirectProcurementDetails" in="${up_Proc_MasterInstance.upDirectProcurementDetails}" status="i" > 
      <g:render template='detail' model="['upDirectProcurementDetails':upDirectProcurementDetails,'i':i]"/> 
     </g:each> 
    </table> 
    <input type="button" style="border: 2px solid" class="btn btn-info btn-md save" value="Add Detail" onclick="addChild();"/> 
</div> 

두 번째 템플릿 곳 행만 >>

<tr id="detail${i}" name="tr[${i}]" class="detail-div" <g:if test="${hidden}">style="display:none;"</g:if>> 
    <g:hiddenField name='upDirectProcurementDetails[${i}].id' value='${upDirectProcurementDetails?.id}'/> 
     <g:hiddenField name='upDirectProcurementDetails[${i}].deleted' value='false'/> 
     <g:hiddenField name='upDirectProcurementDetails[${i}].new' value="${upDirectProcurementDetails?.id == null?'true':'false'}"/> 

<td><g:textField size="13px" name='upDirectProcurementDetails[${i}].RATE' value='${upDirectProcurementDetails?.RATE}' class='detail-number form-control'/></td> 
<td><g:textField size="13px" name='upDirectProcurementDetails[${i}].AMOUNT' value='${upDirectProcurementDetails?.AMOUNT}' onblur="setTotalAmount(this.id)" class='detail-txt form-control'/></td> 
<td><g:textField size="13px" name='upDirectProcurementDetails[${i}].TOTAL_PRICE' value='${upDirectProcurementDetails?.TOTAL_PRICE}' class='detail-txt form-control' readonly=""/></td> 
<td><span style="font-size: 20px;color: #ff0000" class='glyphicon glyphicon-trash delButton' id='delButton${i}' name='results[${i}].delButton'/></td> 
</tr> 
+0

기능 시작 부분에'alert (id)'의 출력은 무엇입니까? –

+0

@AminJafari 경고 (id)의 출력은 >> upDirectProcurementDetails [0] .AMOUNT –

+0

입니다. 'upDirectProcurementDetails'는 id입니까? –

답변

0

사용 rateSelector = "#"+rateField,

사용 var rateField = id.replace("#AMOUNT", "#RATE"),

작은 따옴표로 묶을 필요가 없습니다.

+0

이 표시됩니다. –

+0

자바 스크립트. 하지만 jquery에서하고 싶습니다. –

+0

여기에 귀하의 HTML을 제공합니다 –

0

아래 코드를 사용하십시오. 나는 이것이 당신을 도울 것 같아요.

function setTotalAmount(){ 
var rateField = $('#AMOUNT').attr('id','RATE'); 
rate = $(rateField).val(); 
alert(rate) 
} 
setTotalAmount(); 
+0

정의되지 않음 –

+0

피들 링크를 제공하십시오. 그러면 문제를 쉽게 찾을 수 있습니다. – htoniv

관련 문제