2012-02-07 16 views
14
<html> 
<head> 
<script type="text/javascript" src="jquery-1.7.1.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $("button").click(function(){ 
    alert('hi'+$("input:text").val()); 
    $("input:not(:empty)").val("sdfdf"); 
    }); 
}); 
</script> 
</head> 
<body> 
<input type="text" value="aa" /> 
<input type="text" value="" /> 
<input type="text" value="aa" /> 
<button>Click me</button> 
</body> 
</html> 

estoy tratando de acceder textboxex vacío usando jQuery y la asignación de un valor hola a ella .. pero no está funcionando.

gracias de antemano

+2

leer http://stackoverflow.com/questions/1299424/selecting -empty-text-input-using-jquery – Dau

Respuesta

25

:empty comprueba si un elemento tiene elementos secundarios. input los elementos no pueden tener elementos secundarios.

Si desea probar que el valor del elemento de input está en blanco:

$(document).ready(function(){ 
    $("button").click(function(){ 
    $("input").filter(function() { 
     return this.value.length !== 0; 
    }).val("sdfdf"); 
    }); 
}); 

No tenemos todos los input elementos y, a continuación, filtrarla por lo que sólo aquellos cuyos value propiedad no "" es están incluidos .

+2

Esta es la forma correcta de hacerlo. Un selector como 'entrada [tipo = texto] [valor = '']' probablemente no sea correcto para este caso porque solo considera el atributo de valor inicial e ignora los caracteres ingresados ​​por el usuario. –

+0

eso es exactamente lo que quiero ..... gracias fue realmente útil – user1194147

+0

@ user1194147: Buen trato, me alegro de que haya ayudado. Como eres nuevo en SO: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

5

Se podría utilizar otro selector para su tarea:

$("input[value='']").val("sdfdf"); 
+2

Ten en cuenta que esto se selecciona en función del valor inicial del atributo HTML; no la propiedad DOM. Por lo tanto, si el usuario cambia el valor, este selector no lo recogerá. [Más sobre la diferencia entre atributos y propiedades] (http://api.jquery.com/attr/) –

0

Se podría utilizar un .Cada con este interior:

if($(this).val().length === 0) { 
    $(this).parents('p').addClass('warning'); 
} 
Cuestiones relacionadas