|
I created a simple function
Greet (),
What goes inside the ()? If I leave it blank, when I call the function it works great. If I put something inside then it stops working altogether, even when I put the same thing inside.
I'm happy it worked, but I'm very new to this and want to understand fully the basics. Thank you so much for your help!
|
|
|
|
|
These links can give you an overview about JavaScript functions basics:
|
|
|
|
|
I just learned this myself. When you define your function Greet(), you need to define it with something inside the parenthesis so the function expects to get data to then be used in the function. So you would define Greet() instead as Greet(var). In this case var is any variable name you choose. Greet can then use var in the function for whatever purposes it needs. When you call Greet, you would put a string or other variable name inside the parenthesis: Greet("Sue") or Greet(namex). The function will then treat that as var. Hope that was clear enough to help!
|
|
|
|
|
I have created a small web app using HTML5 + AngularJS to upload custom files(such as with extension .xyz). It works fine on Desktop browsers(IE, Firefox, Chrome). However on mobile browsers, it fails to detect the file and gives ‘Unsupported file format’ in android and iPhone only gives an option to select images. Is there a way we can upload the custom(.xyz) files using ‘input’ element with type=file? How can I make file upload mobile browsers compatible?
Praveen Raghuvanshi
Software Developer
|
|
|
|
|
I was using Blob to save a file.
var blob = new Blob([output], { type: "text/plain;charset=utf-8" });
saveAs(blob, "FileName.csv");
It stopped working in IE 11 for some reason on multiple computers. It still works in other browsers.
My question is either, 1) how can I get Blob working again in IE or 2) is there another way to save a file without using Blob?
Thanks
Brent
Brent
|
|
|
|
|
There is an issue we notice while trying to read browser version .
Issue is when we have window 7 machine and IE version is 11 user agent that we getting is same as IE 8 .
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; ATT)}
While it should be
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
am i missing any setting in browser which need to be done ? can anyone also suggest is there is any alternate way to read the browser version since we are getting the wrong user agent.
|
|
|
|
|
It sounds like your site is running in IE8 compatibility mode.
- The Developer Tools setting overrides any document mode specified by a webpage. The setting remains active for the lifetime of the tab.
- In Internet Explorer 9, if the document is hosted in an iframe element, the document mode is determined by the document mode of the top-level webpage. Subdocuments cannot be rendered in IE9 mode unless the top-level document is also in IE9 mode.
- A meta tag with a value of X-UA-Compatible or a HTTP response header can override items in the Compatibility View Settings list and the doctype unless the X-UA-Compatible value is a Compatibility View setting, such as IE=EmulateIE7 or IE=EmulateIE8.
- The Compatibility View settings can force a webpage to be displayed in a less-standard document mode.
- The Local Compatibility Site list, the Microsoft Compatibility Site list and the Enterprise Mode IE Compatibility Site list can force a webpage to be displayed in other document modes.
- Group Policy settings override settings and force all webpages to be displayed in the specified document mode.
- If none of these rules apply, the
<!DOCTYPE> declaration determines whether the webpage renders in a standards mode, Almost Standards mode, or quirks mode.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
<script>
$(window).load(function () {
if ($('#TTest1').val(null)) { $('#TTest1').val("No"); }
</script>
Somewhat new to mixing in javascript or jquery into html, The goal is to test the values being passed into the form, and on some of those, if they are null? make the value = "No".
The result above is hit or miss, it sometimes works and usually does not. I can see the value coming from the sql management studio is null, i can put an alert within the test in my IF statement, and it never fires the message.
but another set of variables using the exact same syntax works fairly well. My question is how to manipulate the variable so that it tests it reliably and can set the value to string "No" if null?
I wondered if its doing a double-reference and because of this producing invalid results? i mean the statement tests the variable then writes it?
the variables are passed in from the c# view, and the edit form can change then submit and they get updated in the database. Well there seems to be some challenge in looking at a variable and testing it to be null.
javascript is ok to use it just has to be reliable and work every time.
|
|
|
|
|
Member 11733868 wrote: if ($('#TTest1').val(null))
The .val(value) version[^] of the val method sets the value of the matched elements to the specified value, and returns the set of matched elements.
Due to javascript's strange concept of "truthy" variables, the returned jQuery object will always be considered to be "true", and the code within the if block will always execute.
If you want to test whether the specified element's value is empty, you need to call val without passing any arguments, and then test the return value:
if ($('#TTest1').val() === '') { ...
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
ok thanks this is helpful, but its 3 equals signs?
it makes sense variablename.val() is equal to ...but 3 ===
i forgot about the truthiness factor. let me ask you from another angle, is the javascript and jquery able to run code thats mission critical? in other words is the execution predictable that it will run exactly as coded every time?
i want to understand, it seems like with browser/html it could run until interrupted by a mouse movement or ? and it could lose its place?
|
|
|
|
|
Quote: is the execution predictable that it will run exactly as coded every time?
100% sure it would run the same every time, unless your JavaScript engine tinkers with something else.
In other words, it is a standard language and alert(message) always pops out a dialog box instead of closing the window (which is done by using window.close() ). I have never seen such thing ever happening.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
right, when i have code that works sometimes but not every time, i wonder what the engine is doing.
So, would you say that an application like controlling equipment would not be advisable with html/javascript? where it reads a value of something and takes action like sets a voltage that runs a motor, etc?
its okay if its like that, am just trying to be clear what its doing, how 'stateful' is it? i mean there are websites like amazon where you look at items and it may mess up but you just reload and go. if the html/javascript was running motors that moved mechanisms is it stateful and trustable to keep its place?
|
|
|
|
|
Yes they are totally trust-worthy and you can put your faith in it. It is just the browser that keeps tinkering, and the performance and other stuff depends on browser itself.
JavaScript would never do something that is not written, and would always do what is written.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
|
ok thanks for that. === is strict equality, nulls compare when they are null and undefined, == converts the types but hopefully converts a copy; so if it converts and you reference something more than once that got converted, it can be a problem is that what you mean?
I assumed strict equality, but will use this in the future. it seems that the javascript/html cannot be trusted for lambda type expressions like c#, just do everything a step at a time
i had done switch case, case yes, no, null, "" then default with the alert message "it should never get here". of course you can guess the message that shows up. value was no. or other code tested for null and would be true when the value was string 'no', and othertimes not.
but i think the answer is to separate the tests and not try to combine and hope the test will be run right.
|
|
|
|
|
Is that how you do it in any other language? Clearly you have less idea of how relational operators work.
$('el').val(null);
Code would set the value of that (input only) element to null. It doesn't perform any comparison at all. Which is done by using equality check. You need to use,
if($('#TTest1').val() == '')) {
$('#TTest1').val('No');
}
This would now work.
Another way has been shared by Richard, that is an equality check that also check whether their type is same or not, for example '1' == 1 is true (where as in C# it would be false, because character 1 is not equal to integer 1). For such scenarios you use === which checks the type also. In such case, '1' === 1 would return false. Which means they might have same string representation but not same type. Use that code in order to determine their type and value.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
were you saying that comparison to ="" is not valid? its sometimes a reference to null, right?
is there any way you know of that could make visual studio debug this script? if i put breakpoints on the script it says no, not supported.
fiddle is nice to check syntax; three equals's checks types, so its a bit clearer now
|
|
|
|
|
Debug your JavaScript code inside your browser. Browsers also support this feature.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
debug as in single step? is there no add in to visual studio?
|
|
|
|
|
I'm having problems with external js file. When the function is within the html page, it works fine. as soon as I reference it to external source it doesn't.
External file: xml.js
function helloworld1() {
document.write( helloworld world );
return
}
web page:
<title>
function helloworld1() {
document.write("helloworld world");
return
}
</head>
<body>
<script type="text/javascript"> var m = helloworld();
Click me to display Date and Time.
|
|
|
|
|
Probably your reference is wrong...It may be src="xml.js" or some ore complicated path...Use the built in debugger of your browser and check console messages to see if the external file was loaded at all...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
but i can put alert messages in there and they get fired off in other parts of the same script section
you get variables from the database there in that edit form sitting in the controls mostly textboxes and then when clicking submit they all get sent into the db to update the db table
so in the html the variable is there, sometimes its visible in the alert("value is: "+ $'(variablename).val'));
but if the variable.val() isnull or == null or == "" then it should set that variable.val() = "No";
sometimes it works, sometimes not this is with a handler that runs after the window.load ? when the DOM is fully ready and all the images are drawn, then it runs code to check for certain null values and if null replace that with string 'no' otherwise dont care.
thanks
|
|
|
|
|
It works the same. Your problem may be timing issue. The provided code doesn't show the usage of the xml functions and I'm assuming you execute some xml function while the xml.js is being loaded. Before you make any call to functions defined in the xml.js file, you have to make sure that the file has been loaded successful.
|
|
|
|
|
Please how can i input jquery slideshows in my web?
|
|
|
|
|
I have a table with 3 columns. Container # , Container Size and Pickup Location.
I am looping through each of the rows and append all the data to a string variable.
However, I also need to store the Pick up location(input by user, and will be same for all containers in a request) to be stored in a variable. How do I go about it?
The alert does show up onchange of text in textbox txtLocRow1. However the value is not showing up in email.
<table id="tblCtnrInfo" border="0">
<tr>
<td>
<input id="txtLocRow1" onkeypress="keyPressTest(event, this);" name="txtLocRow1" onchange="StoreLocation()" />
</td>
</tr>
</table>
function StoreLocation() {
var j;
for (j = 1; j <= 1; j++) {
_pickLoc.Value = document.getElementById('txtLocRow' + j).value;
alert('Hidden:' + _pickLoc.Value);
}
C# code where I intend to use _pickLoc.Value to show location in email subject.
msg.Subject = "ABC Request from " + tCompany.Value + ": " + uName.Value + ": " + _pickLoc.Value ;
modified 25-Jun-15 11:44am.
|
|
|
|