2014-11-28 1 views
1

그래서 나는이 웹 내보기에 그리드 있습니다두 개의 Java 스크립트 변수가 다른지 확인하는 방법은 무엇입니까?

@{ 
    var grid = new WebGrid(Model); 
} 
<div id="gridContent"> 

    <button type="button" id="createNewPredefinedView" style="margin-bottom: 20px;">@Html.Localize("createNew")</button> 

    @grid.GetHtml(
mode: WebGridPagerModes.All, 
columns: 

    grid.Columns(
     grid.Column("PredefID", format: @<text> <span class="display-mode" id="PredefViewID">@item.PredefineViewID </span> <label id="PredefID" class="edit-mode">@item.PredefineViewID</label> </text>, style: "col1Width"), 


     grid.Column("", format: @<text> 
     <img class="edit-table display-mode click_images" src="~/Images/edit.png" /> 
     <img class="delete-table display-mode click_images" src="~/Images/delete.png" /> 
     <img class="open-sensors display-mode click_images" src="~/Images/Sensor.png" /> 
     <img class="save-table edit-mode click_images" src="~/Images/save.png" /> 
     <img class="cancel-table edit-mode click_images" src="~/Images/cancel.png" /> 
     </text>, style: "col2Width", canSort: false), 



     grid.Column("AmountOfSensors", @Html.Localize("amountOfSensors").ToString(), format: @<text> <span class="display-mode" id="lblAmountOfSensors"> @item.SensorNo </span> <label id="AmountOfSensors" class="edit-mode"> @item.SensorNo </label> </text>, style: "col2Width", canSort: false) 
    )) 
</div> 

내가 var에 sensorNumber가 0보다 큰 경우 확인하려면이 자바 스크립트 을 사용하여, 그러나이있는 문자열 때문에, 난 그냥 것을보고 싶어 모든하지만

$(".delete-table").on("click", function() { 
    var tr = $(this).parents('tr:first'); 
    var sensorNumber = tr.find("#AmountOfSensors").html(); 
    var zero = "0" 
    if ($(sensorNumber).val() != $(zero)) { 
     alert("can't delete"); 
    } 
    else { 
     //my delete code code goes here 
    } 
)}; 

그러나이 방법으로 "0"문자열이, 내 sensorNumber이 "0"값을 포함 할 수 있습니다 .... 그리고이 경우 절을 충족 갈 것입니다, 다른 값은 경우로 이동 뿐만 아니라 좋은,하지만 난 그저 "else"else else else else else로 가길 원한다. 내가 뭘 잘못하고 있는거야?

+2

에서 zero 변수를 사용하지 않는 왜 jquery에 '제로'를 싸야합니까? 그냥'$ (sensorNumber) .val()! = "0"' –

+0

을 확인하십시오. jQuery를 올바로 사용하지 않습니다. 그것 없이도, 나는 아직도 문자열을이 방법과 비교하는 것에 대해 ** 강력하게 추천 할 것이다. 'parseInt' 또는'parseFloat'를 사용하여 숫자를 추출하십시오. 그리고 평등보다'! =='identity를 사용하십시오. – blgt

답변

1

$(zero)$("0") 선택을 의미한다. 그런 다음이 구문

var sensorNumber = tr.find("#AmountOfSensors").html(); 

이 있기 때문에 또한, sensorNumber"0"과 비교하려는 변수는 실제로, 그래서 당신은 $(sensorNumber).val()를 사용할 필요가 없습니다. sensorNumber 항상 정수를 포함한다고 가정하면, 정수로 zero을 설정하고

var zero = 0; 
if (parseInt(sensorNumber) != parseInt(zero)) 

다음과 같이 두 개의 정수를 비교하고 있는지 확인하기 위해 parseInt 기능을 사용 또는 모든

if (parseInt(sensorNumber) != parseInt(0)) 
+0

if ($ (sensorNumber) .val()! = "0") 을 시도한 결과, 여전히 if 함수를 수행하고 그렇지 않은 경우에는 그렇지 않습니다. sensorNumber "0"입니다. – Vrankela

+0

'sensorNumber'의 값은 무엇입니까? 'if' 블록 앞에'alert (sensorNumber);를 추가 할 수 있습니까? – ekad

+0

if 블록 앞에 경고 (sensorNumber)를 추가하면 선택한 행에 정확히 숫자가 적어집니다. – Vrankela

0

JavaScript에서 문자열이나 숫자를 비교할 때 jQuery 함수로 래핑 할 필요가 없습니다. 그냥 == 체크를 간단히하십시오. 이 $(zero)와 비교 이해가되지 않도록 코드에서

if ($(sensorNumber).val() != zero) { 
    alert("can't delete"); 
} 
관련 문제