2009-10-07 3 views
0

J'ai un formulaire avec un type d'entrée = image. Il avait l'habitude d'avoir une confirmation dans son onclick qui renvoyait true/false permettant/stop le formulaire de soumission. J'ai récemment «mis à niveau» vers une boîte de dialogue non modale avec un gestionnaire de rappel. Comme le gestionnaire de rappel est non modal, la valeur de retour à l'entrée est toujours false, ne pas soumettre ... Lorsque je soumets une confirmation, le nom de l'entrée n'est pas sur le formulaire, car techniquement n'a pas été cliqué. C'est le problème, le code cherche l'entrée à être sur ...Type d'entrée = Image "On" sans événement onclick

Je peux utiliser un champ caché avec l'ancien nom et le régler sur pour contourner ce problème, mais cela semble cludgy. Ce qui serait bien, c'est si je pouvais «activer l'entrée» sans déclencher l'onclick (un désastre récursif). Peut-être pas un désastre, mais pas sexy. J'ai essayé de définir la valeur de l'entrée sur, mais cela ne semble pas post.

Des idées? P.S. Je n'utilise pas .NET, donc les solutions impliquant ASP.NET ne s'appliqueront pas :-(

J'ajoute un exemple de code Lorsque vous cliquez sur Foo !, vous remarquerez que Foo.x = 0 et Foo.y = . 0 dans la barre d'adresse Cliquer sur la barre, vous obtenez rien que je voudrais être en mesure de placer la barre sur le formulaire dans le BarCallback

code:..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title></title> 
    <script language="javascript" type="text/javascript"> 
     function Bar() { 
      setTimeout(BarCallback, 500); 
      return false; 
     } 

     function BarCallback() { 
      document.getElementById('TheForm').submit(); 
     } 
    </script> 
</head> 
<body> 
    <form method="get" id="TheForm"> 
     <input type="image" alt="Foo!" name="Foo" /> 
     <br /> 
     <input type="image" alt="Bar!" name="Bar" onclick="return Bar();" /> 
    </form> 
</body> 
</html> 
+0

S'il vous plaît poster le code HTML & JavaScript – eveliotc

Répondre

0

Ce qui serait bien, est si je pouvais 'activer l'entrée'

Pas possible, désolé. Vous pouvez seulement ajouter un autre contrôle pour prétendre que c'était (par exemple une entrée cachée, ou un paramètre direct si vous utilisez AJAX).

J'ai essayé de définir la valeur de l'entrée sur Oui, mais elle ne semble pas postée.

Comment a-t-il échoué? Pour une entrée d'image, vous devez inclure les suffixes .x et .y au nom du champ, car c'est ce que font les navigateurs pour faire passer un clic d'image avec une position. par exemple.

<input type="hidden" name="submit.x" value="1" /> 
<input type="hidden" name="submit.y" value="1" /> 

le code est à la recherche de l'entrée pour être sur ...

Ne pourriez-vous fixer le code pour supprimer cette exigence?

+0

Je pourrais, mais j'essaie de rendre la mise à jour aussi indolore que possible ... Le champ caché fonctionne très bien, il se sent juste sale. Merci pour la contribution. –

Questions connexes