Ich habe den folgenden Code in einer AnsichtWie ein OnChange-Ereignis ausführen @ mit Html.InputFor
@Html.InputFor(m => m.CurrentAddress.Address.Zip, new { id="currentZip", onchange = "decode_zipcode(currentZip.value,1);" }, disabled:false)
Und die folgende Javascript, die ich ausführen soll, wenn der Wert in dem obigen Eingang
var mZipArea = 0;
var vZipCode = document.getElementById('currentZip').value;
function decode_zipcode(vZipCode, vArea) {
//currentzipCode = vArea;
if (vZipCode.length == 5) {
dtdecodeZipCode(vHostUrl, vZipCode, 'return_zipdecode');
}
}
function return_zipdecode(vCity, vCounty, vState) {
if (mZipArea == 1) {
document.getElementById('currentCity').value = vCity;
document.getElementById('currentState').value = vState;
document.getElementById("currentCounty").value = vCounty;
document.getElementById('currentState').value = "United States";
}
ändert
Grundsätzlich, was dies tut, ist die Eingabe (Postleitzahl) und die Stadt, Staat, Landkreis und Land. Wenn ich den Code ausführe, bekomme ich keinen Fehler, aber der Code führt niemals das Javascript aus. Ich bin ziemlich neu in MVC und JavaScript so dass jede Hilfe bei diesem würde
EDIT geschätzt werden: Externe JS Datei
<script src="/_scripts/dtAddress_v10_r1.js">
function dtaddAddressOption(selectbox, text, value) {
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
selectbox.options.add(optn);
}
function dtCountryLookup(vHostUrl,vCountry, oState, vCallBack, vUseAbbr) {
// will return the callback of the state array and proper lables
//return should look like this
// myCallBackFunction(vCountyLabel,vCityLabel,vStateLabel,vZipLabel)
var vCountyLabel = ""
var vCityLabel = ""
var vStateLabel = ""
var vZipLabel = ""
var vBlank = ""
if (vUseAbbr == null)
{
vUseAbbr = false;
}
if (vCountry == 'Canada') {
// hide the county
vCountyLabel = "none"
vCityLabel = "City"
vStateLabel = "Province"
vZipLabel = "Postal Code"
vBlank = "Select Province"
}
if (vCountry == 'Mexico') {
// hide the county
vCountyLabel = "none"
vCityLabel = "Division/City/Town"
vStateLabel = "Province"
vZipLabel = "Postal Code"
vBlank = "Select Province"
}
if (vCountry == 'United States') {
// hide the county
vCountyLabel = "County"
vCityLabel = "City"
vStateLabel = "State"
vZipLabel = "Postal Code"
vBlank = "Select State"
}
if (vCountry == '') {
vCountry = 'United States'
// hide the county
vCountyLabel = "County"
vCityLabel = "City"
vStateLabel = "State"
vZipLabel = "Postal Code"
vBlank = "Select State"
}
//get state list
var oXML = new dtxmlObject
oXML.createXMLDocument("dealtrace")
oXML.createXMLRecord("dtrequest")
oXML.setAttributeValue("action", "901")
oXML.createXMLRecord("dtrequest_parameter")
oXML.setAttributeValue("country", vCountry)
///////////////////////////////////////////
//// POST
//////////////////////////////////////////
var objHttp = oXML.createHttpObject()
var vReturn = ""
objHttp.open("POST", vHostUrl + "/pages/ajax/dt_ajaxservice_open.aspx", 1)
objHttp.onreadystatechange = function() {
if (objHttp.readyState == 4) {
vReturn = objHttp.responseText;
oXML.destroyXML()
oXML.loadXML(vReturn)
oXML.loadXMLRecords("table")
var vRecCount = oXML.xmlRecordCount()
oState.length = 0
dtaddAddressOption(oState, vBlank, "")
for (var i = 0; i < vRecCount; i++) {
if (oXML.loadXMLRecord(i) == true) {
if (vUseAbbr == true) {
dtaddAddressOption(oState, oXML.getAttributeValue("stateabbr"), oXML.getAttributeValue("stateabbr"))
}
else {
dtaddAddressOption(oState, oXML.getAttributeValue("statename"), oXML.getAttributeValue("stateabbr"))
}
}
}
oXML.destroyXML()
if (vCallBack != "") {
vCallBack = vCallBack + "('" + vCountyLabel + "','" + vCityLabel + "','" + vStateLabel + "','" + vZipLabel + "')"
eval(vCallBack);
}
}
}
objHttp.setRequestHeader("Content-Type", "text/xml")
objHttp.send(oXML.getXML())
//////////////////////////////////////////
/// END POST
/////////////////////////////////////////
// // SUBMIT TO SERVER
// var objHttp = oXML.createHttpObject()
// var b
// var vReturn = ""
//
// b = objHttp.open("POST", vHostUrl + "/pages/ajax/dt_ajaxservice_open.aspx", 0)
// b = objHttp.setRequestHeader("Content-Type", "text/xml")
// b = objHttp.send(oXML.getXML())
// vReturn = objHttp.responseText;
// oXML.loadXML(vReturn)
// oXML.loadXMLRecords("table")
// var vRecCount = oXML.xmlRecordCount()
// oState.length = 0
// dtaddAddressOption(oState, vBlank, "")
// for (var i = 0; i < vRecCount; i++) {
// if (oXML.loadXMLRecord(i) == true) {
// dtaddAddressOption(oState, oXML.getAttributeValue("statename"), oXML.getAttributeValue("stateabbr"))
// }
// }
// oXML.destroyXML()
// if (vCallBack != "") {
// vCallBack = vCallBack + "('" + vCountyLabel + "','" + vCityLabel + "','" + vStateLabel + "','" + vZipLabel + "')"
// eval(vCallBack);
// }
}
function dtdecodeZipCode(vHostUrl, vZipCode, vCallBack) {
// will return the callback of the state array and proper lables
//return should look like this
// myCallBackFunction(vCounty,vCity,vState)
var vCounty
var vCity
var vState
if (vZipCode.length == 5) {
var oXML = new dtxmlObject
oXML.createXMLDocument("dealtrace")
oXML.createXMLRecord("dtrequest")
oXML.setAttributeValue("action", "101")
oXML.createXMLRecord("dtrequest_parameter")
oXML.setAttributeValue("zipcode", vZipCode)
///////////////////////////////////////////
//// POST
//////////////////////////////////////////
var objHttp = oXML.createHttpObject()
var vReturn = ""
objHttp.open("POST", vHostUrl + "/pages/ajax/dt_ajaxservice_open.aspx", 1)
objHttp.onreadystatechange = function() {
if (objHttp.readyState == 4) {
vReturn = objHttp.responseText;
oXML.destroyXML()
oXML.loadXML(vReturn)
oXML.loadXMLRecords("table")
if (oXML.loadXMLRecord(0) == true) {
vCity = oXML.getAttributeValue("city").replace(/^\s*|\s(?=\s)|\s*$/g, "");
vCounty = oXML.getAttributeValue("county").replace(/^\s*|\s(?=\s)|\s*$/g, "");
vState = oXML.getAttributeValue("state").replace(/^\s*|\s(?=\s)|\s*$/g, "");
}
oXML.destroyXML()
if (vCallBack != "") {
vCallBack = vCallBack + "('" + vCity + "','" + vCounty + "','" + vState + "')"
eval(vCallBack);
}
}
}
objHttp.setRequestHeader("Content-Type", "text/xml")
objHttp.send(oXML.getXML())
//////////////////////////////////////////
/// END POST
/////////////////////////////////////////
// // SUBMIT TO SERVER
// var objHttp = oXML.createHttpObject()
// var b
// var vReturn = ""
// b = objHttp.open("POST", vHostUrl + "/pages/ajax/dt_ajaxservice_open.aspx", 0)
// b = objHttp.setRequestHeader("Content-Type", "text/xml")
// b = objHttp.send(oXML.getXML())
// vReturn = objHttp.responseText;
// oXML.loadXML(vReturn)
// oXML.loadXMLRecords("table")
// if (oXML.loadXMLRecord(0) == true) {
// vCity = oXML.getAttributeValue("city").replace(/^\s*|\s(?=\s)|\s*$/g, "");
// vCounty = oXML.getAttributeValue("county").replace(/^\s*|\s(?=\s)|\s*$/g, "");
// vState = oXML.getAttributeValue("state").replace(/^\s*|\s(?=\s)|\s*$/g, "");
// }
// oXML.destroyXML()
} else {
if (vCallBack != "") {
vCallBack = vCallBack + "('" + vCity + "','" + vCounty + "','" + vState + "')"
eval(vCallBack);
}
}
}
</script>
'.InputFor()' ist das Ihre eigene Erweiterung? Wie sieht dein gerenderter HTML-Code aus? – Jasen
Ja, das ist unsere Erweiterung es ist das gleiche wie eine TextBoxFor nur anders benannt. Ich werde Ihnen die gerenderten HTML-Code so schnell wie möglich – MaximusPrime
Wenn ich auf die gerenderten HTML unsere externe js-Datei, die damit verbunden ist, betrachten. Ich bearbeitete den Beitrag, um die externe js Datei einzuschließen – MaximusPrime