2015-04-07 2 views
0

У меня есть несколько кнопок. Нажав кнопку, появится диалоговое окно jquery. Я хочу знать идентификатор кнопки, который открыл диалоговое окно. Вот мой JSP кодполучить идентификатор кнопки, открывшей диалоговое окно jquery

<tbody> 
<c:forEach var="history" items="${history}" varStatus="loopCounter"> 
<c:forEach var="child" items="${history.child}" varStatus="loopCounter2"> 
<tr> 
     <td align="left"> 
      <span class = "item"> 
       <img src="img/vendor_logos/<c:out value="${child.courierProduct.logoName}" />"/> 
      </span> 
     </td> 
     <td align="left"> 
      <span> 
       <c:out value="${child.routeDetails.sourceName}" /> 
      </span> 
     </td> 
     <td align="left"> 
      <span> 
       <c:out value="${child.routeDetails.destinationName}" /> 
      </span> 
     </td> 
     <td align="left"> 
      <span class="cost" style="font-size: 23px;"><img src="img/rs.png" /> 
       <c:out value="${history.cost}" />/- 
      </span> 
     </td> 
     <td align="left"> 
      <span> 
       <c:out value="${child.orderTime}" /> 
      </span> 
     </td> 
     <td align="left"> 
     <span> 
     /* this div id i want to get in the jquery function */ 
     /* it is inside for so there can be multiple div which can trigger dialog box */ 
     <div id="${loopCounter.index}" name = "rate" class="rate" style="" title="Rate">Submit Review</div> 
     </span> 
     </td> 

</tr> 
</c:forEach> 
</c:forEach> 
</tbody> 

Здесь диалоговое окно ДИВ

<div id="rateDialog" class="rateDialog" style="display:none;height:250px;width:500px;" title="Rating"> 
     <div id="showDialogMessage"></div> 
     <label>Rate your overall satisfaction:</label> 
     <div> 
     <input type="radio" name="rating" value="1" class="star"/> 
     <input type="radio" name="rating" value="2" class="star"/> 
     <input type="radio" name="rating" value="3" class="star"/> 
     <input type="radio" name="rating" value="4" class="star"/> 
     <input type="radio" name="rating" value="5" class="star"/> 
     </div> 
     <br/> 
     <label>Please provide your review: </label> 
     <textarea name="reviewArea" rows="5"></textarea> 
     <input id="submit" type="submit" value="Submit" style="margin : 18px 0px 0px 93px;"/> 
     </div> 

Здесь функция JQuery

<script> 
$(document).ready(function() { 
$(function() { 
    var rateDialog = $("#rateDialog").dialog({ 
     autoOpen: false, 
     minHeight:250, 
      width: 400, 
      height: 265, 
     open: function(event, ui) { 
      $("#showDialogMessage").hide(); 
      $('#reviewArea').val(''); 
      } 
     }); 

     $(".rate").on("click", function() { 
      // Display the dialog 
      rateDialog.dialog("open"); 
      alert($('div[name=rate]').attr('id')); 
     }); 
}); 
$("#submit").click(function(e) { 
$("#showDialogMessage").hide(); 
    var xmlhttp; 
    $("#submit").prop('disabled',true); 
    alert("called"); 
     var url=""; 
     if (window.XMLHttpRequest) 
     { 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     { 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange=function() 
     { 

      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       $("#submit").removeAttr('disabled'); 
       document.getElementById("showPasswordMessage").innerHTML=xmlhttp.responseText; 
       $("#showPasswordMessage").show(); 
      } 
     } 

     xmlhttp.open("GET", url, true); 
     xmlhttp.send(); 
}); 
    }); 
</script> 

Я пытался с этим

оповещения ($ (» DIV [имя = скорость] ') атр (.' ID '));

, но он дает 0 каждый раз.

+1

Используйте '$ (это) .attr ('ID')' или '' this.id' или event.target.id' –

ответ

2

просто использовать $(this) внутри click обработчика, как:

$(".rate").on("click", function() { 
    //use $(this) -- this points to the element you clicked on 
    alert($(this).attr("id")); //alerts the div's id 
    // Display the dialog 
    rateDialog.dialog("open"); 
    //alert($('div[name=rate]').attr('id'));   
}); 
+0

Спасибо, сэр! Это сработало. Я приму ответ в течение нескольких минут. – user3681970

2

Вы можете использовать this.id или event.target.id: this относится текущий элемент.

$(".rate").on("click", function(event) { 
    // Display the dialog 
    rateDialog.dialog("open"); 
    alert(this.id); //event.target.id 
}); 
0

Просто используйте текущий объект this ключевое слово

var id = $(this).attr('id');

Смежные вопросы