Bonjour à tous,
Je débute en jquery et je bloque butte sur un bout de code depuis un bon moment.
Je souhaite remplir plusieurs champs de formulaire avec une sélection faite dans une liste dynamique appelée en JS via jquery.
1/La liste s'ouvre bien, mais à la validation, c'est toujours le premier champ appelé qui reçoit la sélection.
2/Je souhaiterais ne pas pouvoir faire d'autres appels tant que la liste est ouverte.
Voici un exemple de mon code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/jquery.js"></script>
<style>
#main input{border:1px solid gray;}
</style>
<script type="text/javascript">
$(function(){
$('#main input').click(function(){
$('#info').remove();
$(this).css('border','1px solid red');
var idch = this.id;
//console.log(idch);//id of the focussed field
$('#container').show();
$('<div id="info" />').load('quest.html',function(){
$(this).hide()
.appendTo('#container')
.show();
});
$('#container a').click(function(){
$('#main input[id='+idch+']').css('border','1px solid gray');
$('#main input[id='+idch+']').val($("input:radio[name='q']:checked").val());
$('#container').hide('fast');
$('#info').remove();
return false;
});
});
});
</script>
</head>
<body>
<div id="container" style="display:none">
<h1> Your choice </h1>
<a href="#">Send the value</a>
</div>
<!-- Below: input fields of the form to fill -->
<div id="main">
<label for="ch1">q1:</label>
<input type="text" name="ch1" id="ch1" />
<label for="ch1">q2:</label>
<input type="text" name="ch2" id="ch2" />
<label for="ch1">q3:</label>
<input type="text" name="ch3" id="ch3" />
<div>
</body>
</html>
----------------------------
<!-- fichier externe : quest.html
<div id="pane_quest">
<p width="500" height="400" align="left">
<input name="q" id="q_1" value="v1" type="radio"><label for="q_1">one</label><br>
<input name="q" id="q_2" value="v2" type="radio"><label for="q_2">two</label><br>
<input name="q" id="q_3" value="v3" type="radio"><label for="q_3">three</label><br>
<input name="q" id="q_4" value="v4" type="radio"><label for="q_4">four</label><br>
</p>
</div>
-->
Merci d'avance pour les conseils
Pegos
Modifié par pegos (12 Aug 2009 - 09:40)
Je débute en jquery et je bloque butte sur un bout de code depuis un bon moment.
Je souhaite remplir plusieurs champs de formulaire avec une sélection faite dans une liste dynamique appelée en JS via jquery.
1/La liste s'ouvre bien, mais à la validation, c'est toujours le premier champ appelé qui reçoit la sélection.
2/Je souhaiterais ne pas pouvoir faire d'autres appels tant que la liste est ouverte.
Voici un exemple de mon code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/jquery.js"></script>
<style>
#main input{border:1px solid gray;}
</style>
<script type="text/javascript">
$(function(){
$('#main input').click(function(){
$('#info').remove();
$(this).css('border','1px solid red');
var idch = this.id;
//console.log(idch);//id of the focussed field
$('#container').show();
$('<div id="info" />').load('quest.html',function(){
$(this).hide()
.appendTo('#container')
.show();
});
$('#container a').click(function(){
$('#main input[id='+idch+']').css('border','1px solid gray');
$('#main input[id='+idch+']').val($("input:radio[name='q']:checked").val());
$('#container').hide('fast');
$('#info').remove();
return false;
});
});
});
</script>
</head>
<body>
<div id="container" style="display:none">
<h1> Your choice </h1>
<a href="#">Send the value</a>
</div>
<!-- Below: input fields of the form to fill -->
<div id="main">
<label for="ch1">q1:</label>
<input type="text" name="ch1" id="ch1" />
<label for="ch1">q2:</label>
<input type="text" name="ch2" id="ch2" />
<label for="ch1">q3:</label>
<input type="text" name="ch3" id="ch3" />
<div>
</body>
</html>
----------------------------
<!-- fichier externe : quest.html
<div id="pane_quest">
<p width="500" height="400" align="left">
<input name="q" id="q_1" value="v1" type="radio"><label for="q_1">one</label><br>
<input name="q" id="q_2" value="v2" type="radio"><label for="q_2">two</label><br>
<input name="q" id="q_3" value="v3" type="radio"><label for="q_3">three</label><br>
<input name="q" id="q_4" value="v4" type="radio"><label for="q_4">four</label><br>
</p>
</div>
-->
Merci d'avance pour les conseils
Pegos
Modifié par pegos (12 Aug 2009 - 09:40)