javascript,select
4 отговора
385 прегледа
javascript,select
Здравейте,
имам следната HTML форма:
<form name=enter_forma action=enter_data.php
method=get>
...
<select name=izp0>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp1>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp2>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<input name=kind_alt_izp type=hidden value=?>
...
<input type=submit value=Submit>
</form>
Искам да запиша в hidden полето kind_alt_izp масив(или символен низ), съставен от избраните стойности на отделните SELECT полета и всяка промяна в някое поле да се отразява в масива.
Например, ако съм въвел в поле 1 "полага", в поле 2 "не", в поле 3 "не", в kind_alt_izp да имам 100.
Може ли някой да ме насочи към нещо подобно, което да погледна?
Благодаря за вниманието!
имам следната HTML форма:
<form name=enter_forma action=enter_data.php
method=get>
...
<select name=izp0>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp1>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp2>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<input name=kind_alt_izp type=hidden value=?>
...
<input type=submit value=Submit>
</form>
Искам да запиша в hidden полето kind_alt_izp масив(или символен низ), съставен от избраните стойности на отделните SELECT полета и всяка промяна в някое поле да се отразява в масива.
Например, ако съм въвел в поле 1 "полага", в поле 2 "не", в поле 3 "не", в kind_alt_izp да имам 100.
Може ли някой да ме насочи към нещо подобно, което да погледна?
Благодаря за вниманието!
Re: javascript,select
<script>
function ChangeHiddenField(){
document.enter_forma.kind_alt_izp.value=document.enter_forma.izp0.options[enter_forma.izp0.selectedIndex].value+document.enter_forma.izp1.options[enter_forma.izp1.selectedIndex].value+document.enter_forma.izp2.options[enter_forma.izp2.selectedIndex].value;
}
</script>
<form name=enter_forma action=enter_data.php
method=get>
...
<select name=izp0 onchange=ChangeHiddenField()>
<option value=0> íå </option>
<option value=1> ïîëàãà </option>
</select>
<select name=izp1 onchange=ChangeHiddenField()>
<option value=0> íå </option>
<option value=1> ïîëàãà </option>
</select>
<select name=izp2 onchange=ChangeHiddenField()>
<option value=0> íå </option>
<option value=1> ïîëàãà </option>
</select>
<input name=kind_alt_izp type=text>
...
<input type=submit value=Submit>
</form>
function ChangeHiddenField(){
document.enter_forma.kind_alt_izp.value=document.enter_forma.izp0.options[enter_forma.izp0.selectedIndex].value+document.enter_forma.izp1.options[enter_forma.izp1.selectedIndex].value+document.enter_forma.izp2.options[enter_forma.izp2.selectedIndex].value;
}
</script>
<form name=enter_forma action=enter_data.php
method=get>
...
<select name=izp0 onchange=ChangeHiddenField()>
<option value=0> íå </option>
<option value=1> ïîëàãà </option>
</select>
<select name=izp1 onchange=ChangeHiddenField()>
<option value=0> íå </option>
<option value=1> ïîëàãà </option>
</select>
<select name=izp2 onchange=ChangeHiddenField()>
<option value=0> íå </option>
<option value=1> ïîëàãà </option>
</select>
<input name=kind_alt_izp type=text>
...
<input type=submit value=Submit>
</form>
Re: javascript,select
Абе, той Сандо вече ти е отговорил но нека и аз да напиша нещо.
От неизбежното се възмущава само този, който е неразумен.
<script type="text/javascript">
function fillHidden(aForm)
{
/************************************
Ако не искаш разделител си
сетни това на празен стринг ("").
************************************/
var divider=":";
if(typeof aForm.tagName == 'undefined' ||
aForm.tagName != "FORM")
return;
with(aForm)
{
kind_alt_izp.value=izp0.value+divider+
izp1.value+divider+izp2.value;
}
}
</script>
<form name=enter_forma action=enter_data.php method=get
onsubmit="fillHidden(this);">
...
<select name=izp0 onchange="fillHidden(this.form);">
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp1 onchange="fillHidden(this.form);">
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp2 onchange="fillHidden(this.form);">
<option value=0> не </option>
<option value=1> полага </option>
</select>
<input name=kind_alt_izp type=hidden value=?>
...
<input type=submit value=Submit>
</form>
От неизбежното се възмущава само този, който е неразумен.
Редактирано от Учeщ на
Re: javascript,select
Здравейте отново, момчета! Много благодаря за помощта, всичко става, както сте ми го написали. Сега обаче изникна друг проблем:
<script>
var mas=new String("");
function saberi()
{
for (var i=0;i<3;i++)
{
current_sel='izp'+i;
val =
document.enter_forma.current_sel.options[document.enter_forma.elements.selectedIndex].val
ue;
mas=mas+val;
}
document.enter_forma.kind_alt_izp.value = mas;
}
</script>
<form name=enter_forma action=enter_data.php
method=get>
<select name=izp0>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp1>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp2>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<input type=hidden name=kind_alt_izp>";
<input type=submit value=Submit onsubmit=saberi()>
</form>
Как мога в горната JavaScript функция във всяка итерация на цикъла да асоциирам current_sel с
поле select на формата? В момента в current_sel се получава име на
поле(съответно izp0,izp1,izp2), но долният ред, чието предназначение е да вземе стойността
на полето и да я прибави към mas, не работи. Когато заменя current_sel с име на обект,
например izp0, функцията сработва. Има ли начин да конвертирам тип String в тип обект?
Можете ли да ми дадете някаква идея?
<script>
var mas=new String("");
function saberi()
{
for (var i=0;i<3;i++)
{
current_sel='izp'+i;
val =
document.enter_forma.current_sel.options[document.enter_forma.elements.selectedIndex].val
ue;
mas=mas+val;
}
document.enter_forma.kind_alt_izp.value = mas;
}
</script>
<form name=enter_forma action=enter_data.php
method=get>
<select name=izp0>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp1>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<select name=izp2>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<input type=hidden name=kind_alt_izp>";
<input type=submit value=Submit onsubmit=saberi()>
</form>
Как мога в горната JavaScript функция във всяка итерация на цикъла да асоциирам current_sel с
поле select на формата? В момента в current_sel се получава име на
поле(съответно izp0,izp1,izp2), но долният ред, чието предназначение е да вземе стойността
на полето и да я прибави към mas, не работи. Когато заменя current_sel с име на обект,
например izp0, функцията сработва. Има ли начин да конвертирам тип String в тип обект?
Можете ли да ми дадете някаква идея?
Re: javascript,select
eval("val = document.enter_forma." + current_sel + ".options[document.enter_forma.elements[ i ].selectedIndex].value");
Редактирано от Chernobyl® на