2014-07-03 101 views
0

如何編寫用於禁用HTML屬性文本框的jQuery代碼。 通過使用jQuery我禁用基於userId的文本框,如果userId == ''我想啓用文本框,如果userId != ''我想禁用文本框。如何使用jQuery禁用HTML禁用的文本框屬性

<input type="text" value="${userJson.firstName}" class="txtcontrolwidth" name="firstName" maxlength="45" id="firstName" 
     disabled="if(${userJson.userId} == '') {$('#firstName').attr('disabled', false)} else {$('#firstName').attr('disabled', true)}" /> 

每當它處於禁用模式時,它都不會啓用。

通過調用外部函數禁用文本框很容易。

<script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-1.11.1.js"></script> 
<script type="text/javascript"> 
if(${userJson.userId} == "") { 
    $('#firstName').attr('disabled', false); 
} else { 
    $('#firstName').attr('disabled', true); 
} 
</script> 

但我想只禁用禁用的屬性中的文本框。

+0

你不能把JavaScript中的'disabled'屬性裏面,你必須做到這一點的'

0

的HTML disabled屬性您正在使用的<input>標籤是一個布爾屬性,但它是一種非常棘手。

檢查了這一點:

<!-- These will be disabled --> 
<input type="text" disabled>  
<input type="text" disabled="true"> 
<input type="text" disabled="false"> 
<input type="text" disabled="myFunction()"> <!-- function will not be executed --> 

<!-- And this will be enabled --> 
<input type="text"> 

如果你希望你的<input>啓用,不包括在標籤中的disabled屬性。

試着用這個替換您的代碼:

<input type="text" value="${userJson.firstName}" class="txtcontrolwidth" name="firstName" maxlength="45" id="firstName" ${ userJson.userId == '' ? 'disabled' : '' } /> 

上面的代碼將只有當userJson.userId == ''disabled屬性標籤。

0

HTML

<input type="text" value="${userJson.firstName}" class="txtcontrolwidth" name="firstName" maxlength="45" id="firstName" 
    disabled="if(${userJson.userId} == '') {$('#firstName').attr('disabled', false)} else {$('#firstName').attr('disabled', true)}" /> 

在上面的代碼禁用屬性存在,所以在禁用模式文本框中一樣,如果JavaScript是返回真或假disabled屬性值不會改變。

使用以下

<input type="text" value="${userJson.firstName}" class="txtcontrolwidth" name="firstName" maxlength="45" id="firstName" ${userJson.userId == ''?'': 'disabled'}> 

如果想使用JavaScript函數使用以下命令:

<script type="text/javascript"> 
    // you have to use double quotes around the value, because the ${userJson.userId} is evaluated then prints the value to the browser html, it cause javascript error 
    if("${userJson.userId}" == "") { 
     $('#firstName').prop('disabled', false); 
    } else { 
     $('#firstName').prop(disabled', true); 
} 
</script> 
+0

'$ {userJson.userId ==''?'disabled':''}'這個邏輯不起作用。 – pudaykiran

+0

如果** userJson.userId **包含空格,那麼在將值設置爲** userJson.userId **之前,上述邏輯將不起作用,請修改該值並嘗試。 – Srinu

+0

如果它包含值1,它不工作。 – pudaykiran