读书人

新手请问传递参数有关问题

发布时间: 2012-04-11 17:42:33 作者: rapoo

新手请教传递参数问题
var dropdown = function (stringUrl) {
this.stringKeySpliter = "";
this.stringRecordSpliter = "|";
this.stringSystemKeys = "s,sh,sz,0,1,2,3,4,5,6,7,8,9";
this.arraySystemKeys = new Array();
this.arrayPrepareKeys = new Array();
this.intPrepareKeysMaxLength = 50;
this.stringData = new String();
this.getNearestData = function (stringKey) {
if (this.arrayPrepareKeys.length == 0) {
return new String();
}
var arrayContainers = new Array();
for (var i =0; i < this.arraySystemKeys.length; i++) {
if (this.arraySystemKeys[i][0] == stringKey) {
return this.arraySystemKeys[i][1];
}
if (stringKey.match(new RegExp("^" + this.arraySystemKeys[i][0], "igm")) != null) {
arrayContainers.push(this.arraySystemKeys[i]);
}
}
for (var i = 0; i < this.arrayPrepareKeys.length; i++) {
if (this.arrayPrepareKeys[i][0] == stringKey) {
return this.arrayPrepareKeys[i][1];
}
if (stringKey.match(new RegExp("^" + this.arrayPrepareKeys[i][0], "igm")) != null) {
arrayContainers.push(this.arrayPrepareKeys[i]);
}
}
if (arrayContainers.length == 0) {
return new String();
}
else {
arrayContainers.sort(
function (arrayA, arrayB) {
return arrayB[0].length - arrayA[0].length;
}
);
return arrayContainers[0][1];
}
};


this.getResult = function (stringData, stringKey) {
var stringRegExpSystem = "$()*+.[?\^{|";
var stringKeySpliter = (stringRegExpSystem.indexOf(this.stringKeySpliter) < 0 ? "" : "\\") + this.stringKeySpliter;
var stringRecordSpliter = (stringRegExpSystem.indexOf(this.stringRecordSpliter) < 0 ? "" : "\\") + this.stringRecordSpliter;
var arrayMatchResult = stringData.match(new RegExp("" + stringRecordSpliter + (isNaN(parseInt(stringKey)) ? "" : "(s[hz])?") + stringKey + "[^\\" + stringRecordSpliter + "|" + stringKeySpliter + "]*" + stringKeySpliter + "[^\\" + stringRecordSpliter + "|" + stringKeySpliter + "|\n]*", "igm"));
return arrayMatchResult == null ? new Array() : arrayMatchResult;
};


this.getQuickResult = function (stringKey) {
stringKey = stringKey.split(this.stringKeySpliter).join("").split(this.stringRecordSpliter).join("");
if (stringKey == "") {
return new Array();
}
var stringNearestData = this.getNearestData(stringKey);
var arrayResult = stringNearestData == "" ? this.getResult(this.stringData, stringKey) : this.getResult(stringNearestData, stringKey);
arrayResult = arrayResult == null ? new Array() : arrayResult;
var booleanIsInSystemKeys = false;
for (var i = 0; i < this.arraySystemKeys.length; i++) {
if (this.arraySystemKeys[i][0] == stringKey) {
booleanIsInSystemKeys = true;
break;
}
}
var booleanIsInPrepareKeys = false;
for (var i = 0; i < this.arrayPrepareKeys.length; i++) {
if (this.arrayPrepareKeys[i][0] == stringKey) {
booleanIsInPrepareKeys = true;
break;
}
}
if (!booleanIsInSystemKeys && !booleanIsInPrepareKeys) {
this.arrayPrepareKeys.push(new Array(stringKey, arrayResult.join("")));
if (this.arrayPrepareKeys.length > this.intPrepareKeysMaxLength) {
this.arrayPrepareKeys.sort(
function (arrayA, arrayB) {
return arrayA[0].length - arrayB[0].length;
}
);
this.arrayPrepareKeys.pop();
}
}
return arrayResult;
};
this.load = function (stringKey) {
if (stringKey.indexOf(",") != -1 && stringKey.indexOf(",") != 0 && stringKey.indexOf(",") != stringKey.length - 1) {


var arrayStringKey = stringKey.split(",");
stringKey = arrayStringKey[arrayStringKey.length - 1];
}
if (stringKey.indexOf("\\") != -1) {
return new Array();
}
var stringRegExpSystem = "$()*+.[?^{|";
for (var i = 0; i < stringRegExpSystem.length; i++) {
if (stringKey.indexOf(stringRegExpSystem.substr(i, 1)) != -1) {
return new Array();
}
}
var stringMarket = new String();
var arrayQuickResult = this.getQuickResult(stringKey);
arrayQuickResult.length = arrayQuickResult.length > 10 ? 10 : arrayQuickResult.length;
return arrayQuickResult;
};
this.show = function () {
var element = arguments.callee.element;
if (!element.booleanScan) {
return;
}
if (element.stringLastValue != element.value && element.value != ChkName) {
element.line = null;
element.stringLastValue = element.value;
var arrayResult = element.dropdown.load(element.value);
if (arrayResult.length > 0) {
element.divHint.style.display = "block";
var arrayPosition = GetOffsetPos(element);
element.divHint.style.left = arrayPosition[0] + "px";
element.divHint.style.top = arrayPosition[1] + 3 + "px";
element.divHint.style.marginTop = element.clientHeight + 1 + "px";
element.divHint.style.width = (element.clientWidth < 200 ? 200 : element.clientWidth) +5+ "px";
var tableContainer = document.createElement("table");
tableContainer.className = "table";
tableContainer.cellPadding = 0;
tableContainer.cellSpacing = 0;
var trHeader = tableContainer.insertRow(0);

for (var i = 0; i < arrayResult.length; i++) {
if (isNaN(parseInt(i))) {
continue;
};
var arrayRecord = arrayResult[i].split("|");
var arrayCodeAndName = arrayRecord[1].split("-");
var trRecord = tableContainer.insertRow(parseInt(i) + 1);
var tdName = trRecord.insertCell(0);
tdName.innerHTML = arrayCodeAndName[0];
var tdCount = trRecord.insertCell(1);
tdCount.innerHTML = arrayCodeAndName[1];

trRecord.stringCodeAndName = arrayCodeAndName[0];
trRecord.inputTarget = element;
trRecord.onmouseover = function () {
this.inputTarget.overLine = this;
this.className = this.inputTarget.line == this ? "overSelectedLine" : "overLine";
};
trRecord.onmouseout = function () {
this.inputTarget.overLine = null;
this.className = this.inputTarget.line == this ? "selectedLine" : "";
};
trRecord.onmousedown = function () {
this.inputTarget.booleanScan = true;
this.inputTarget.setLine(this);
};
}
element.divHint.innerHTML = "";
element.divHint.appendChild(tableContainer);
element.tableHint = tableContainer;
}
else {
element.divHint.style.display = "none";
element.divHint.innerHTML = "";
element.tableHint = null;
}
}
};
接下

[解决办法]
是问怎么把key传递出去吗?

这样用原来的方式就可以,不用做特别修改
stringUrl = "1.php?id=2&key=111"

[解决办法]
假如你的输入框是这样的<input id="key" name="key"/>

试下
stringUrl = "1.php?id=2&key=" + document.getElementById("key").value

读书人网 >Ajax

热点推荐