chkUsername tar en parameter i prototypen:
function chkUsername(uName)
men två när du anropar den:
chkUsername('getUsername', document.forms[0].uName.value);
Borde inte funka så bra ..?
4 svar · 232 visningar · startad av SilvioF
Tjenare. Nu hoppas jag på ett någorlunda snbbt svar för jag har suttit med det här hela dagen (är hemma och sjuk).
Det är så att jag har gett mig på att försöka lite RemoteScripting, men det är inte alltid det vill funka som jag vill.
[b]test.asp[/b]
<HTML>
<HEAD>
<TITLE>remote1.htm</TITLE>
<link href="../css/public.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY>
<script language="JavaScript" src="../_Scriptlibrary/rs.htm"></script>
<script language="JavaScript">RSEnableRemoteScripting("../_Scriptlibrary");</script>
<form name="remote1">
Username:<input type="text" name="uName" value="">
<input name="btnGetUsername" type="button" id="btnGetUsername" value="Get username" onClick="chkUsername('getUsername', document.forms[0].uName.value);">
<input name="btnClear" type="button" id="btnClear" value="rensa statusfält" onClick="document.all['returnValue'].innerHTML = '';">
<br>
<SCRIPT LANGUAGE="javascript">
var serverURL = "remote1.asp";
function myCallBack(co)
{
document.all['returnValue'].innerHTML = co.return_value;
}
function chkUsername(uName)
{
var co = RSExecute(serverURL, uName, myCallBack);
}
</SCRIPT>
<div id="returnValue" name="returnValue"></div>
</form>
</BODY>
</HTML>
[b]remote1.asp[/b]
<%@ LANGUAGE="VBSCRIPT" %>
<% RSDispatch %>
<!--#INCLUDE file="../_ScriptLibrary/rs.asp"-->
<SCRIPT RUNAT="SERVER" Language="javascript">
function Description()
{
this.getUsername = Function("uName", "return checkUserName(uName)");
}
public_description = new Description();
</script>
<%
function checkUserName(uName)
set conn=server.CreateObject("ADODB.Connection")
myconn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("../db/com.mdb") & ";"
conn.open myconn
strSQL = "SELECT uName FROM tblUsers WHERE uName = '" & uName & "'"
Set rstTemp = conn.Execute(strSQL)
If rstTemp.EOF Then
'checkUserName = "alert('Ledigt användarnamn'); return true;"
checkUserName = strSQL
Else
checkUserName = "alert('Användarnamnet är upptaget.\nVälj ett annat.'); document.forms[0].uName.focus(); return false;"
End If
rstTemp.Close
Set rstTemp = nothing
conn.Close
Set conn = nothing
end function
%>
Funktionen skall användas för att kontrollera ifall ett användarnamn är upptaget redan innan man postar formuläret, allt för att slippa ladda om sidan.
Jag har en liknande sida, som funkar fint, som ingår i registreringen där man får välja ett län och sedan fyller jag en listbox med tillhörande kommuner i det länet. Denna sida fungerar som sagt var alldeles utmärkt.
Men nu till mitt problem:
Det verkar inte som om jag får med något värde då jag anropar funktionen checkUserName(uName) om jag anropar den via RemoteScripting på test.asp. Det funkar däremot alldeles utmärkt om jag anropar den, utan javascript, på remote1.asp-sidan.
Är det någon som är insatt i detta ämne och kan hjälpa mig. Det är säkerligen något simpelt fel jag har gjort, men jag kan inte se det.
Tyvärr så finns det ingen "demo"-sida att surfa in på eftersom jag nyligen har konfigurerat upp min brandvägg ordentligt och jag orkar inte pilla upp allting på webbhotellet riktigt än (det blir lätt en massa skräpfiler kvar där då).
chkUsername tar en parameter i prototypen:
function chkUsername(uName)
men två när du anropar den:
chkUsername('getUsername', document.forms[0].uName.value);
Borde inte funka så bra ..?
Danke schöne. Du ledde mig in på rätt spår i alla fall.
Nähä, jag får inte till det i alla fall. Men nu så får jag i alla fall in ett värde i sql-strängen, vilket jag inte fick förut.
Nu så vill den inte visa värdet (co.return_value) på test.asp istället.
Har löst det nu.
Fic ktill det så att värdet returnerades ordentligt och en koorekt if-sats i javascript (hade använt = istället för ==). :/