You are correct, the other function can not see the updated value the way your function is written.
Instead of passing in the value to validateX, pass in the control and manipulate the ctl.value inside validateX.
Here is a simple test case:
<html>
<head>
<script type="text/javascript">
function test1(val) {
alert("Value before assignment " + val);
val = "fred";
display();
}
function test2(ctl) {
alert("Value before assignment " + ctl.value);
ctl.value = "fred";
display();
}
function display() {
alert("Value after assignment " + form.tb.value);
}
</script>
<body>
<form name="form" method="post" id="aspnetForm">
<input id="tb" type="text" value="Initial Value" />
<input type="button" onclick="test1(form.tb.value);" value="do test1" />
<input type="button" onclick="test2(form.tb);" value="do test2" />
</form>
</body>
</html>