2009-12-08 5 views
0

J'ai besoin d'aide avec le javascript ci-dessous s'il vous plaît. J'ai 2 zones de texte et 1 bouton sur mon formulaire. Ce que je voudrais arriver, c'est que si l'utilisateur entre une valeur dans la zone de texte un et pas dans la zone de texte deux, alors l'événement n'a pas besoin d'être déclenché. Cependant, s'il y a une valeur dans la zone de texte 1 puis dans la zone de texte 2, je veux que le message soit de nouveau activé. Mon code ci-dessous ne semble pas le faire du tout et j'apprécierais que quelqu'un puisse m'aider à résoudre ce problème ou à mieux le comprendre. Merci à l'avanceJavaScript Postback en condition

function Changed(textControl) { 
    // alert(textControl.value); 
    var conlength = document.getElementById('<%=txtLength.ClientID %>'); 
    var conwidth = document.getElementById('<%=txtwidth.ClientID %>'); 
    if (conlength != null && conwidth != null) { 
     if (conlength.value != null && conlength.value != ' ' && conwidth.value != null && conwidth.value != ' ') { 
      // ' ' corresponds to c#'s String.Empty     
      __doPostBack(document.getElementById('<%=btncalcboardfeet.ClientID %>'), 'Calculate Board Feet Button event has been fired'); 
     } 
    } 
} 

Répondre

0

au lieu de cette dernière instruction if juste essayer ce qui suit:

if (conlength.value && conwidth.value) { 
      // ' ' corresponds to c#'s String.Empty     
      __doPostBack(document.getElementById('<%=btncalcboardfeet.ClientID %>'), 'Calculate Board Feet Button event has been fired'); 
} 
+0

qui l'a fait! Merci – Kobojunkie

+0

Attendez, juste une autre chose! Lorsque je lance initialement ma page et que j'entre les valeurs dans la zone de texte 1 puis dans la zone de texte 2, l'événement click est déclenché mais les zones de texte sont effacées de leurs valeurs et rien d'autre ne se produit par conséquent. Y a-t-il quelque chose que je dois faire en plus pour que cela fonctionne normalement? – Kobojunkie

+0

Cela ne semble pas lié à ce code. Rien ici ne modifie les valeurs. Y a-t-il autre chose sur la page? –

0

Pourquoi ne pas adopter une approche plus simple ... si votre condition est remplie, cliquez sur votre programme bouton Envoyer ;-) il est super simple en utilisant quelque chose comme jquery, même si vous êtes dans ce genre de chose :

$("#<%=btncalcboardfeet.ClientID %>").click(); 

de cette façon, vous ne devez pas essayer de comprendre quelle fonction javascript interne asp.net tente d'appeler (comme cela pourrait changer à l'avenir (mais peu probable)).

modifier: version non jQuery:

document.getElementById("<%=btncalcboardfeet.ClientID %>").click(); 
+0

qui fonctionnerait si je pouvais utiliser jquery dans mon code, mais je ne suis pas le faire. – Kobojunkie

+0

voir edit, version non jquery est tout aussi facile (quoique quelques caractères de plus) ;-) –

0

Si vous utilisez WebForms ASP.NET et utilisez l'aspic : TextBox pour collecter les informations, vous pouvez utiliser le RequiredFieldValidator pour vous assurer que les deux champs ont une valeur avant que la page soit publiée.

1

Vous devez regarder la longueur de la valeur, et non pas l'élément lui-même:

var conlength = document.getElementById('<%=txtLength.ClientID %>').value;