Toon posts:

[js] value van een textbox

Pagina: 1
Acties:

Verwijderd

Topicstarter
de bedoeling word duidelijk genoeg met het script lijkt me :D
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<SCRIPT type="text/javascript"> 

function test() { // deze is om output van de value van T1 te alerten.

test = document.getElementById('T1').value; // var test = de value van T1
alert ('value is '+test+'') // alert de value
}

function checkbox() // als C1 checked is de textbox unlocken, en andersom locken.
{
text = document.getElementById('T1')
check = document.getElementById('C1')
if (check.checked == true) { // als C1 checked is dan is T1 niet disabled
document.getElementById('T1').disabled = false;
}
else { // als C1 unchecked is dan is T1 disabled
document.getElementById('T1').disabled = true;
}
}

</SCRIPT>

code:
1
2
3
  <p><input type="checkbox" id="C1" value="ON" onClick="checkbox()">
<input type="text" id="T1" size="20" disabled="true" value="hi"></p>
  <p><a href="javascript:test()">test</a>

De eerste keer werkt alles perfect. Ik vraag om de value, en hij geeft me een mooi alert met "hi". Gebruik ik echter een keertje de function checkbox() dan geeft hij een error zodra ik function test() (nogmaals) gebruik. hij zou dus mooi de value moeten alerten, ook zodra ik die veranderd heb.

"Value" is bij HTML een attribute en staat eigenlijk voor "Default Value". Bij javascript is het echter een property van het object T1, en staat het voor "Current Value"

/me heeft zijn huiswerk gedaan voor met de vraag te komen ;)

Ik heb geprobeerd om wat te rotzooien met dingen als onInput, maar tevergeefs :/ . Iemand suggesties?

[ Voor 37% gewijzigd door Verwijderd op 05-03-2004 16:53 ]


  • dominic
  • Registratie: Juli 2000
  • Laatst online: 08-02 14:55

dominic

will code for food

Wat is de foutmelding?

Download my music on SoundCloud


Verwijderd

Topicstarter
ik zal hem even online zetten, kan je zelf even bekijken :). De foutmelding is dat hij een functie verwacht :|
edit:
klik

[ Voor 16% gewijzigd door Verwijderd op 05-03-2004 16:59 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

JavaScript:
1
2
3
function test() { // deze is om output van de value van T1 te alerten.

test = document.getElementById('T1').value; // var test = de value van T1

je overschrijft je eigen functie ;)

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op 05 maart 2004 @ 16:58:
JavaScript:
1
2
3
function test() { // deze is om output van de value van T1 te alerten.

test = document.getElementById('T1').value; // var test = de value van T1

je overschrijft je eigen functie ;)
8)7 mijn dank, even proberen met andere var naam
edit:
werkt :D mijn dank is enorm _/-\o_

[ Voor 9% gewijzigd door Verwijderd op 05-03-2004 17:00 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 20:58
Misschien werk var er voor zetten ook wel, dan maak je er een lokale variable van. Niet dat het mooi is overigens...

Verwijderd

Topicstarter
Nee, het is allemaal nog rommelig enzo, het ging me nu maar even om het principe. Het uiteindelijke doel heeft niks meer hier mee te maken :), het was meer een soort self-made tutorial. Ik bedacht dit en heb het uitgewerkt zodat ik het nu ook in andere situaties toe kan passen :D. Leer je heel wat van bij :)

raar dat het me niet op is gevallen dat als ik 2 keer drukte dat het dan ook niet gewerkt zou hebben, en dat checkbox() er dus niks mee te maken had :/

nog een probleem: Ik zet nu de default value op " ". vervolgens gebruik ik:
code:
1
2
3
4
5
6
7
8
9
10
11
function test() {

test1 = document.getElementById('T1').value; // var test = de value van T1
if (test1 == ' '){ // spatie dus
test1 == 'unidentified'
alert ('value is '+test1+'') // alert de value
}
else {
alert ('value is '+test1+'')
}
}

dit zou moeten werken denk ik? Hij geeft geen error, hij past gewoon de value niet aan, dus pakt als value de spatie.

[ Voor 85% gewijzigd door Verwijderd op 05-03-2004 17:58 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Was test() niet ook een beschermde functie-naam? Ik kan me herinneren dat dit 'vroeger' in ieder geval problemen gaf in sommige browsers.

Het is geen slecht idee om dit soort algemene functienamen niet te gebruiken, of ze nou beschermd zijn of niet :)

Verwijderd

Topicstarter
aangezien het zonder de if-statement gewoon werkt neem ik aan dat dit niet het probleem is :D. Maar ik zal eens kijken met een andere functienaam.

edit:
Dit lost het idd niet op :)

[ Voor 14% gewijzigd door Verwijderd op 05-03-2004 18:27 ]


Verwijderd

Topicstarter
Ik heb nu het volgende geprobeerd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function testen() { // funtion nr 1, deze is om output v/d value van T1 te alerten.
var test1 = document.getElementById('T1').value;
var test2 == test1

if (test2 == "insert text here"){
test1 == 'unidentified'
alert ('value is '+test1+''); // alert de value
}

else {
alert ('value is '+test1+'');
}
}

hierdoor krijg ik echter de ene error na de ander :/ (";" word verwacht, object wordt verwacht... Er word gewoon vanalles verwacht ineens :P)

Global variabelen ervan maken werkt overigens ook niet, dan vraagt hij opeens naar een object? :/

[ Voor 42% gewijzigd door Verwijderd op 05-03-2004 18:41 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

toewijzen: var a = 'iets';
vergelijken: if (a == 'iets');

zoek het verschil ;)

en sluit elk statement af met ; - da's wel zo netjes...

[ Voor 27% gewijzigd door crisp op 05-03-2004 18:42 ]

Intentionally left blank


Verwijderd

Topicstarter
Dan geeft hij: "value is insert text here" hoewel ik toch duidelijk zeg dat "if value == 'insert text here' value = 'unidentified' " :X Ik ben dom

het resultaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<SCRIPT type="text/javascript"> 

function testen() { 
var test1 = document.getElementById('T1').value;
var test2 = test1

if (test2 == "insert") {
test1 = 'unidentified';
alert ('value is '+test1+''); // alert de value
}

else {
alert ('value is '+test1+'')
}
}

function checkbox() {
text = document.getElementById('T1')
check = document.getElementById('C1')
if (check.checked == true) {
document.getElementById('T1').disabled = false;
}
else {
document.getElementById('T1').disabled = true;
}
}

</SCRIPT>
<p><input type="checkbox" id="C1" value="ON" onClick="checkbox()">
<input type="text" id="T1" size="20" disabled="true" value="insert">&nbsp;
<a href="javascript:testen()">test test</a>

dank u voor alle medewerking _/-\o_ *trekt zich gefrustreerd terug in een hoekje*

[ Voor 144% gewijzigd door Verwijderd op 05-03-2004 18:51 ]


Verwijderd

Topicstarter
Ik ben nog wat meer gaan knutselen :+(ik ben onvermoeibaar ;))
hier is wat ik doe:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function testen() {

//set vars
var ValueT1 = document.getElementById('T1').value;;
var ValLength = ValueT1.length

//if unchanged alert it, if less then 3 chars alert it, else give value
if (ValLength < 3) {
alert ('The subject has to be at least 3 characters long');
}

if (ValueT1 == "Insert text here") {
ValueT1 = 'undefined';
alert ('Value is '+ValueT1+'');
}

else {
alert ('Value is '+ValueT1+'');
}
}

het werkt allemaal redelijk, maar als ValLength minder dan 3 chars is, dan geeft hij dus alert 'subject has to be...' maar ook 'value is....', omdat als het minder dan drie is het dus geen "insert text here" is, dus de else ook van toepassing is. Is dit gewoon een beperking van javascript? of is er een manier om 2 voorwaardes te zetten in 1 if? of is er misschien een andere oplossing?

[ Voor 13% gewijzigd door Verwijderd op 05-03-2004 23:28 ]


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-05 09:56
code:
1
2
3
if (ValLength < 3) {
alert ('The subject has to be at least 3 characters long');
}

wordt als één gezien.

en
code:
1
2
3
4
5
6
7
8
if (ValueT1 == "Insert text here") {
ValueT1 = 'undefined';
alert ('Value is '+ValueT1+'');
}

else {
alert ('Value is '+ValueT1+'');
}

Als 1 geheel..

Als if (....==..) niet van toepassing is, geldt dus automatisch de else.. je zou het op moeten lossen als:
code:
1
2
3
if {}
else if {}
else {}


Edit:
Alternatief:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function testen() {

  //set vars
  var ValueT1 = document.getElementById('T1').value;;
  var ValLength = ValueT1.length
  var strError = '';

  //Foutmeldingen opbouwen indien van toepassing
  if (ValLength < 3)
     strError += 'The subject has to be at least 3 characters long';

  if (ValueT1 == 'Insert text here')
     strError += 'Value is undefined';

  //Foutmeldingen in string? Zo ja, laten zien.. anders lekker doorgaan..
  if (strError.length < 1)
     return false;

  return strError;
}

code:
1
<input type="button" onclick="if (testen()) alert(testen());" />


achteraf niet egt logisch opgezet omdat je nu 2x testen() uit moet voeren zie ik :S moet je dat nog even zelf veranderen:P ik ga slapen

[ Voor 59% gewijzigd door r0bert op 05-03-2004 23:49 ]


Verwijderd

Topicstarter
else if, die zocht ik :) ik dacht dat het if else was 8)7. Had nog wat gegoogled op if/else statement e.d. maar kwam er niet op uit :/

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

Verwijderd schreef op 05 maart 2004 @ 23:44:
else if, die zocht ik :) ik dacht dat het if else was 8)7. Had nog wat gegoogled op if/else statement e.d. maar kwam er niet op uit :/
Daarom zijn tutorials en references zo handig ;)

Intentionally left blank


Verwijderd

Topicstarter
Javascript boek onderweg, incl. 600 pagina's reference guide, dus dan zijn jullie van me af ;)
Pagina: 1