0

Hey Guys,

I have an issue with my checkbox and the values that are posted to the next page. The issue is that each time the checkbox is clicked it just adds another value. example - if i check it and uncheck it and check it again i will get 3 values instead of 1. So if the user makes a mistake and needs to uncheck it they end up with 2 values instead of empty. I use PHP to post between pages if that makes any difference.

Thanks:)

<script type="text/JavaScript">
function concat(one)
{
        if(one.checked) {
                var currval = document.getElementById('locality').value;
                var concatval = one.value;
                document.getElementById('locality').value=""+currval+concatval+"";
        }
}
</script>
<tr>	
<input type="hidden" name="locality" id="locality">
<td align="right"><b>Locality</b></td>
<td align="left">
<input type="checkbox" name="locality" value="NATIONAL " id="national" onClick="concat(this);">
NATIONAL
</td>
<td width="59">
<input type="checkbox" name="locality" value="NSW " id="nsw" onClick="concat(this);">
NSW
</td>
<td width="59">
<input type="checkbox" name="locality" value="QLD " id="qld" onClick="concat(this);">
QLD
</td>
<td width="58">
<input type="checkbox" name="locality" value="SA " id="sa" onClick="concat(this);">
SA
</td>
<td width="59">
<input type="checkbox" name="locality" value="TAS " id="tas" onClick="concat(this);">
TAS
</td>
<td width="59">
<input type="checkbox" name="locality" value="VIC " id="vic" onClick="concat(this);">
VIC
</td>
<td width="243">
<input type="checkbox" name="locality" value="WA " id="wa" onClick="concat(this);">
WA
</td>
</tr>
2
Contributors
1
Reply
2
Views
5 Years
Discussion Span
Last Post by niranga
0

Use indexOf and replace methods in Javascript. What I would do is something like below

function concat(one)
{
	var currval = document.getElementById('locality').value;
	var concatval = one.value;
	if(one.checked)
	{
		if(currval.indexOf(one.value) == -1)
		{
			document.getElementById('locality').value=""+currval+concatval+"";
		}
	}
	else if(!one.checked)
	{
		if(currval.indexOf(one.value) != -1)
		{
			document.getElementById('locality').value=currval.replace(one.value,"");
		}
	}
}
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.