[ miksi @ 13.06.2011. 13:21 ] @
Parsiram JSON fajl da bih proverila da li se korisnicko ime poklapa sa imenom ili prezimenom, ako se nadje poklapanje kroz promenljivu IPime punim TextBox promenljivu tb. To sve radi, jer pozivom date aspx strane dobijam ispravne vrednosti u textBox polju. Problem nastaje kada hocu da to sto vidim u tb polju (dakle u TextBox promenljivoj tb) smestim sa jos nekim podacima u txt fajl, jer ne znam sa kojim dogadjajem da hvatam ovu izmenjenu vrednost. Napravila sam test fajl i isprobala za sve dogadjaje iz ciklusa strane, pravila sopstveni, pa ga trigerovala i nista. Vraca mi default Text="???" iako polje zaista dobije vrednost "ima" ili "nema".
Evo koda:
$.getJSON(url,function(json){

$.each(json,function(key, val){
if (key == "error")
{ime="error";
username="err";}
else
{
items.push('<li >' + key + '&nbsp;&nbsp;' + val + '</li>');

if (key == "first_name")
{ ime=val.toUpperCase();
}
if (key == "last_name")
{ prezime=val.toUpperCase();
}
if (key == "username")
{ username=val.toUpperCase();
}
}

});

if (ime == username)
{
IPime="ima";
document.getElementById("tb").innerText="ima"; }
else
if (prezime == username)
{
IPime="ima";
document.getElementById("tb").innerText="ima"; }
else
{
IPime="nema";
document.getElementById("tb").innerText="nema"; }
});

});


</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="tb" runat="server" Text="???" OnTextChanged="tb_TextChanged"></asp:TextBox>

</form>
</body>
</html>

Ima predloga za ovako nesto na msdn, ali ja moram da realizujem pamcenje u txt bez da kliknem i iniciram onclick(). So, mora da ima neki nacin da se detektuje izmena textbox-a programski.

<html>
<head>
<script type="text/javascript">

function onChange(textbox) {
log("onChange (" + textbox.value + ")");
}

function programmaticChange() {
log("programmaticChange");
var textbox = document.getElementById("textbox");
textbox.value += "*";
if (typeof(textbox.onchange) == "function") textbox.onchange();
}

function log(text) {
document.getElementById("log").innerHTML += "<br>" + text;
}

</script>
</head>
<body>
<input type="text" id="textbox" onchange="onChange(this)" />
<a href="#" onclick="programmaticChange(); return false">programmaticChange</a>
<hr />
<div id="log"></div>
</body>
</html>

[ miksi @ 13.06.2011. 14:40 ] @
DAkle, generalno važi ovo:"The JavaScript is going to fire first since it happens first, then the server-side event will fire IF AutoPostBack is on in the TextBox AND the value is different than it was when the page loaded."

Ali, važi i ovo:


if ((ime == username) || (prezime == username))
{
IPime="ima";
}
else
{
IPime="nema";
}
document.getElementById("tb").innerText=IPime;
document.getElementById("tb").onchange();

Tako da je poziv funkcije onchange() meni resio problem! Onda izmenu hvatam na Page_Load :

if (IsPostBack)
{
napuniTxtFajl(tb.Text);
}