Jump to content

Javascript getting Form Value with a twist


onlyican

Recommended Posts

Hey guys

 

I have a form, and when the user hits submit, I will check the form for certain things.

 

Basic fields I can do easily by


<input type='text' name='MyName' id='MyName' value='Jamie' />

<script type='text/javascript'>

var MyName;

MyName = document.getElementById('MyName').value;

alert("MyName is " + MyName);

</script>

That works, I have a pop up with "Jamie"

 

BUT

 

I also have some text fields set out like this

 


<input type='text' name='MyValues[]' value='1' />

<input type='text' name='MyValues[]' value='2' />

<input type='text' name='MyValues[]' value='3' />

The [] makes the Value go into an Array

 

Is there anyway I can check this in JavaScript without a Page Refresh?

 

Link to comment
Share on other sites

you can write a javascript function to check the values which returns either true or false depending on the check and place this in the onSubmit function of the form

 

<form name="myform1" id="myform1" type="post" action="nextform.php" onSubmit"return checkfunction();">

--> if checkfunction() returns a "false" then the page is not posted, it stops then put up
--> an alert box saying this bit is wrong etc

--> form bits

<input type="submit" name="submit">
</form>

Link to comment
Share on other sites

I mean the [] makes it an array for php

I am a php guy

so if I done this in php

 

<input type='text' name='something' value='1' />
<input type='text' name='something' value='2' />
<input type='text' name='something' value='3' />

<?php

print_r($_POST["something"]);

//Output
//3
?>

 

BUT if I did

<input type='text' name='something[]' value='1' />
<input type='text' name='something[]' value='2' />
<input type='text' name='something[]' value='3' />

<?php

print_r($_POST["something"]);

//Output
//Array ([0] => "1", [1] => "2", [2] => "3")

 

if I done in javascript the following

 


<script type='text/javascript'>

function ShowValues(){
var MyValues;

alert(document.getElementById('MyValues').value);
}
</script>
<form method='post' action=''  onClick="ShowValues();">
<input type='text' name='MyValues[]' id='MyValues' value='1' />
<input type='text' name='MyValues[]' id='MyValues' value='2' />
<input type='text' name='MyValues[]' id='MyValues' value='3' />
</form>

 

I will get an Alert saying "1";

I want the array like

Array ([0] => "1", [1] => "2", [2] => "3")

Link to comment
Share on other sites

*shudder*

 

You can't use the same ID more than once -- EVER.

Second, if you gave the form a name, you could use the elements collection to get at this set of inputs... like document.forms[formName].elements['MyValues[]'] ), which is going to be an array in this case.  Not that I think text inputs are the best choice.

Link to comment
Share on other sites

i know I should not use the ID more than once, which is why I was checking if JavaScript can handle [] like PHP

 

I have this then

 

<script language='text/javascript' />

function FinishedEditing(){
alert(document.forms['MyForm'].elements['MyValues[]']);
}
</script>
<form method='post' action='' name='MyForm'>
<input type='text' name='MyValue[]' value='1' />
<input type='text' name='MyValue[]' value='2' />
<input type='text' name='MyValue[]' value='3' />
<input type='hidden' name='MyOrigValue[]' value='1' />
<input type='hidden' name='MyOrigValue[]' value='2' />
<input type='hidden' name='MyOrigValue[]' value='3' />

<input type="submit" onClick="FinishedEditing();" name="submit" class="loginbutton" value="Finished" />
</form>

 

And the following pop up

 

[object NodeList]

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.