Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #22785
| Message-ID | <13786118.rByXDuVpAv@PointedEars.de> (permalink) |
|---|---|
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
| Organization | PointedEars Software (PES) |
| Date | 2014-01-25 19:24 +0100 |
| Subject | Re: pass to function |
| Newsgroups | comp.lang.javascript |
| References | <lc0ugb$mqb$3@dont-email.me> |
hipa wrote:
> I have a page with a dropdown list with value's from a db. When one item
> is selected a table with invoices changes. I want to do the same if I put
> a value into a text field, but cannot get it to work.
That is not a problem description. Next time, show what you have tried, say
what you expected to happen and why, and what happened instead. And please
post using your real name.
> Something like:
> <input type="text" onchange="getInvoices();" />. But how can I pass the
> entered value to the getInvoices() function?
<input type="text" onchange="getInvoices(this)" />
> This is the working code:
>
> <select name="client_id" id="client_id" onchange="getInvoices();">
> […]
> function getInvoices (elm) {
Given the code above, you are either calling this function the wrong way or
the function does not make use of the “elm” argument. Your code is wrong
either way.
> invoiceArray = eval('(' + response.responseText + ')');
You might want to consider a wrapper that prefers
JSON.parse(response.responseText) before the comparably unsafe eval().
> $('invoiceListings').style.position = "relative";
> $('invoiceListings').style.left = "0";
var invoice_listings = $('invoiceListings');
invoice_listings.style.position = "relative";
invoice_listings.style.left = "0";
Better yet, avoid $('invoiceListings') and associated libraries in favor of
document.getElementById("invoiceListings") or something like that.
And finally, try replacing all of that with
invoice_listings.style.display = "";
> $('invoiceListings').style.position = "absolute";
>
$('invoiceListings').style.left = "-5000px";
>
$('invoiceListings').style.visibility = "hidden";
Try replacing that with
invoice_listings.style.display = "none";
NOTE: Elements where “display: none” are not subject to transition and
animation effects, while nowaways the “visibility” property can be animated.
But if you do not use those, using the “display” property is usually better.
Consider viewports that are wider than 5000px, for example. In fact, there
should be no good reason to move the element at all in order to hide it, if
you position it absolute and set its “visibility” property to “hidden”.
--
PointedEars
Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
pass to function hipa <hipa@telenet.be> - 2014-01-25 18:07 +0000
Re: pass to function Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-01-25 19:24 +0100
Re: pass to function hipa <hipa@telenet.be> - 2014-01-26 15:31 +0000
Re: pass to function Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-01-26 17:58 +0100
csiph-web