Switch(n) Does Not Correctly Evaluate Case / Solve This?
Oct 18, 2009
I am returning the present time - then using the .substr to remove all digits except the last two on the right (i.e effectively returning the value 32 from 65344532) I am then looping, subtracting 11 from that number until the value is less than 11. The intent being to then return the value from the appropriate matching array ID code...
The problem arises with evaluating two digit numbers beginning with zero - In cases where the last two numbers are greater than 09, the looping returns a 1 digit number for valuse less than 10, in cases where the last two digits begin with zero the loop will not begin. I have attempted to use the switch(n) to determine if any 01, 02, 03 ... etc exists but this is not evaluating correctly - is this due to using the date/time object and if so is there a good way to convert this to either a numeric or string datatype where the case can be evaluated correctly?
I have an html form where IE and Firefox work very differently. So, it'd be useful to know what browser is in use. I found this script and put it in my html code...
In the php I do a echo code... but it's always empty... I figure I've got something obvious goofed up, but what?
ALSO, when I run it in IE 8.0, on screen it says "Microsoft Internet Explorer", but it SAYS Browser version: 4 - But I'm using version 8.
AND, when I run it in Firefox version 3.5.5 it SAYS "Netscape" and Browser Version: 5.
var X = 'Moe' switch (X) { case 'Curly'||'Moe'||'Larry': alert('Found one of the Three Stooges'); case 'Chico'||'Harpo'||'Zeppo'||'Grouco'||'Gummo': alert('Found one of the Marx Brothers'); default: alert('No matches');
This gives 'No matches' unless I only put a single string in the 'case' lines. I've just been using VB's Select Case which is a similar flow control but which allows conditional arguments in the 'cases'. I just wondered...
I realise you could put each set of names in an array and iterate through each array, but that's a different issue.
So, I have a list of items that need to have a new preset list item appear based on what day it is. I have the date script working (to test, change the first case to some random date and change the third case to todays date - 10192010 - It will fire that document.write). What I need the cases to do though, is set the visibility of certain list items.
This is just an example, there will be around 20 list items in the final project. As you can see in the first two cases, I've tried a couple different routes to no avail.
The Code (class references are irrelevant to this example, they belong to the final project):
how to get this functionality going. I have a div name "footer". Within "footer" I have 4 links:
link1, link2, link3, link4
Is there anyway to write a function which will sense which link was clicked and then alert the id of that selected link. I have written the code but am not certain why isn't it working. here is my code.
$('#footer a').bind('click', function(){ //alert($(this).attr('id')); var mId = $(this).attr('id'); switch(mId)
I know this does not work, but hopefully you can see what I am trying to do. Only the first value is tested, but I want all of them to be.
[Code]...
Pretend there are like 10 more cases with more numbers with them. Currently this will only text to see if x is 0 or 42. How do I get it to test for the other numbers?
I have a script that will loop through all the INPUT elements of a form; if the input is a submit it will disable the submit (or enable the submit, depending upon what is passed to the function.) I hate using eval() - I avoid it whenever I can! Is there a better way to dynamically process the ".disabled = 'true'/'false';" portion?
in the XPath expression "/html/body/div/ul[1]/li[5]", I need to traverse from li[1] to li[5], so I should use a variable here , like this:
for (index =1; index<6; i++) { nodes = document.evaluate("/html/body/div/ul[1]/li[index]", ....); // the variable index here is invalid! } my question is: How to use the variable in XPath expression?
The following example works great in Firefox, and Chrome but fails miserably in IE (6,7,8). I'm running JQuery 1.3.2 if it makes a difference: $('resp',"<root><resp>value</resp></root>").text(); That evaluates to "value" in everything except IE.
Curious about the following issue. I currently have a dynamic drop-down based on the value of each option.. If selection in top drop-down is B it will show all options with a B contained in the second/resulting drop-down.
Now - I also want to evaluate the options by having the script check for a few keywords..
Example - have it evaluate the drop-down on page load for options with text containing 'blah123' (ex. <option value="0323G">Qwerty - blah123</option>). And if any of the options have that text the script will generate an additional drop-down menu allowing you to select blah123 or other specified text. Say another thing I'd like to search each text string for is 'abump'. If there is 'blah123' and 'abump' contained within the drop-down, a third drop-down menu will be generated (as said before) with only blah123 and abump as options. Whichever of these is selected will narrow down the options available in the final drop-down menu.
I have built a page on a recruitment website which allows users to upload their CV via ASPUpload i.e a browse button. However I want to limit the file type to just MS Word documents as I do want them uploading large PowerPoint files etc. My idea is to have some javascript which evaluates the last 4 characters of the file name to ensure it is .doc So if they try to upload anything other than a .doc file a dialogue box will appear stating that they must only upload MS Word Document (when they click the ‘Upload CV’ button).
Does anyone know how I can evaluate the last 4 characters of the file name? Once the user has browsed to their CV on their PC the path & file name will appear in a text field called ‘CV’.
I don't know how to evaluate the no-blank selections against each other from a form as follows: .
I have a form with 6 dropdown fields, each containing a selection of 30 options (the 30 options are the same for each dropdown list). The user needs to select 'one of the 30 options' from each dropdown selection, but each option they select must be unique (no duplicate selections) or it must be left blank. E.g. The user can select Option3 within "dropdown1", but must select a different option for the other dropdowns - OR leave them unselected.
I was wondering if it's possible to capture a piece of HTML using XPath where the source is a sting rather than a document. I know how to use xPath and document.evaluate() as I've used it before on actual web pages - I just don't understand how to run it on a string of HTML.
E.g. if I have this string: var stg = "<div>The best-laid schemes o' <span>mice</span> an' men</div>"; I'd like to convert this string into something that I can run the document.evaluate() on so that I can find the contents of the SPAN element (without loading the string into a real browser page).
I have an outer page and an inner iframe. The outer page calculates some javascript, and wants the inner frame to run it. The inner frame should hit a page on the same (private) web server, so this is not a cross-site scripting attack. But I would prefer not to taint the target page with any extra logic to do this. (I will if I must.)
Note that both the outer and inner page have a span with the same ID.
This question will resemble a JavaScript FAQ - how to evaluate Javascript on the fly, or how to reload a JS file. The answers on the web generally do not transport the JS across a frame boundary, so they don't address the bug I encountered, and I can't tell if prototype.js or IE is at fault.
The outer page calls Ajax goodies that generate some JS looking like this:
Element.update("update_me", "here I B");
The page sends that, as a string, into this JS (in application.js):
function update_grinder(sauce) { var grinder = $('grinder');
if (grinder) { var doc = grinder.contentDocument; if (!doc) doc = grinder.document; if (doc) { evaluate(doc, sauce); return; } } document.write("your browser sucks"); }
So that contains enough logic to find the iframe's document, and it works for Firefox, IE, Konqueror, and Opera. The code calls evaluate() with the document where we need the evaluation context, and the string with our source.
Here's evaluate():
function evaluate(doc, sauce) { var s = doc.createElement('script'); //s.defer = true; // <-- no effect s.text = sauce; var body = doc.getElementsByTagName('body').item(0);
if (body) { body.appendChild(s); return; } body = doc.body; if (body) { body.appendChild(s); return; } }
That creates a <scriptblock, sticks our string in as its contents, and pushes the block to the end of our <bodytag. Now here's the bug:
Firefox updates the inner <span id='update_me'>, and IE updates the outer one.
If I remove the outer <span id='update_me'>, then IE simply can't find it and throws an error. Even though it evaluates a script block clearly in the context of the inner iframe.
I have tried calling the script from setTimeout, and from a button's onclick handler.
Is there some script.aculo.us way to fix (yet another) bug in IE? Or is this a bug in prototype.js?
That click listener doesn't get attached no matter what I do! I've confirmed that the other functions work, such as the toggle();, and it ALL works in firefox... what is going on?