2010-04-11 20 views
4

jusqu'à présent, je n'ai utilisé que des sélecteurs et des fonctions jquery de base. mais je regarde ce clear form function et je ne peux pas comprendre comment l'ajouter ainsi je peux enlever les entrées cachées et l'entrée de readonly d'être effacé.Comment exclure les champs en lecture seule en utilisant: input in jquery?

Quelqu'un peut-il aider? merci.

function clearForm(form) { 
    // iterate over all of the inputs for the form 
    // element that was passed in 
    $(':input', form).each(function() { 
var type = this.type; 
var tag = this.tagName.toLowerCase(); // normalize case 
// it's ok to reset the value attr of text inputs, 
// password inputs, and textareas 
if (type == 'text' || type == 'password' || tag == 'textarea') 
    this.value = ""; 
// checkboxes and radios need to have their checked state cleared 
// but should *not* have their 'value' changed 
else if (type == 'checkbox' || type == 'radio') 
    this.checked = false; 
// select elements need to have their 'selectedIndex' property set to -1 
// (this works for both single and multiple select elements) 
else if (tag == 'select') 
    this.selectedIndex = -1; 
    }); 
}; 

Répondre

13

Si les éléments ont un attribut readonly dans leur déclaration, vous pouvez utiliser jQuery’s :not() selector:

$(':input:not([readonly])', form) 

filtrer Sinon, les éléments en lecture seule avec quelque chose comme ceci:

$(':input', form).each(function() { 
    if (this.readOnly) return; 
    // … 
}); 
+0

ya mais comment mettez-vous cela dans la fonction? – melaos

+0

doux, c'est exactement ce dont j'avais besoin. – melaos

+0

Donc marquez l'anwer comme correct. –

1
<script type="text/javascript" language="JavaScript"> 
    jQuery(document).ready(function(){ 
     try { 
      var t = jQuery("input[type=text]").not("[readonly]").focus(function(){ 
       jQuery(this).blur(); 
      }); 
      alert(t.length); 
     } 
     catch(error){ 
      alert("error :" + error); 
     } 
    }); 
</script>