Jump to content

Js Random String


TomC
 Share

Recommended Posts

Hi all - hope somebody can help with this. I'm trying to create a random string of text with determined characters. The script below works great, but uses a form to call it. I want the string to show on page load, but cant work out how to alter the JS to make that happen. I thought if I just omitted the function and form lines it should call immediately, but this doesnt seem to work. <script language="javascript" type="text/javascript">function randomString() { var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var string_length = 8; var randomstring = ''; for (var i=0; i<string_length; i++) { var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum,rnum+1); } document.randform.randomfield.value = randomstring;}</script>PS I have worked throught the tutorials, but still cant sort it. Thanks

Link to comment
Share on other sites

Put this at the bottom of your script, NOT inside a function.window.onload = randomString;
hi Deirdre's Dad.Sorry to be a bit dense. Do you mean I should leave my script exactly as is, and add window.onload = randomString outside of the function brackets? Also I've placed all the script inside the head. Is that correct?thanks
Link to comment
Share on other sites

OK, I feely admit to being a dunce - but please believe I have spent hours on this, and now have quite an impressive headache!I now have:<script language="javascript" type="text/javascript">function randomString() { var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var string_length = 8; var randomstring = ''; for (var i=0; i<string_length; i++) { var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum,rnum+1); } document.randform.randomfield.value = randomstring;}window.onload = randomString;</script>With this in the head, I get "document.randform etc is null, or not an object"If I take that line out (as there is now no randform in the body), the script doesnt call. If I leave it in, I still cant get a result no matter where I put the line "window.onload = randomString;"I also tried using, in the body: <script type="text/javascript">document.write(randomString())</script>but this doesn't seem to work either. I'm obviously still wide of the mark, but I cant work out why. Grateful for any further help please,

Link to comment
Share on other sites

If the problem is with randform returning a null value, then why not try referencing it differently:document.getElementById("randfield").value=or document.Forms[0].randfield.value=

Link to comment
Share on other sites

You don't have your function returning a value. It calculates the random string, but it doesn't do anything with it. Either put an element on the page where you write the string to (apparently document.randform.randomfield doesn't exist), or return the value so that you can use your document.write statement.

function randomString() {  var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";   var string_length = 8;  var randomstring = '';  for (var i=0; i<string_length; i++) {	var rnum = Math.floor(Math.random() * chars.length);	randomstring += chars.substring(rnum,rnum+1);  }  return randomstring;}

Link to comment
Share on other sites

I don't know which solution you're referring to, but if you want to write the string to an element instead of return it, you can do that too. You just need an element with a certain ID.document.getElementById("rand").innerHTML = randomstring;<div id="rand"></div>

Link to comment
Share on other sites

Ok, got that. Actually I now have a new problem, in that I dont want to repeat any characters within any given string. I think this may prove a bit more tricky to solve - I'd be interested in your comments. Have posted fresh query,Thanks again.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...