我在javascript下面的函數調用執行一些服務器端checkings一個WebMethod:爲什麼我的OnclientClickEvent後無法執行onClick?
<script type="text/javascript">
function comprobar()
{
PageMethods.F1
(
$("input[type=text][id*=txt_nombre_nu]").val(),
$("input[type=text][id*=txt_numero_empleado]").val(),
$("input[type=text][id*=combo_empresa_nu]").val(),
$("input[type=text][id*=txt_ceco]").val(),
$("input[type=text][id*=combo_gestor_nu]").val(),
$("input[type=text][id*=combo_crear_datos]").val(),
function (msg)
{
if (msg == "")
{
alert("Datos correctos");
return true;
}
else
{
alert(msg);
return false;
}
},
function (msg)
{
}
);
}
</script>
本身似乎正確執行的功能,如果數據不正確,則顯示與該警報正確的數據
問題是,在執行此函數後,我需要執行服務器端代碼的事件OnClick。我知道可以創建另一個PageMethod來執行代碼,問題是需要調用的代碼不是靜態的,所以我不能將它放在WebMethod上。
反正我也做了以下checkings:
這是我一直的事件定義的按鈕:
<obout:OboutButton runat="server" ID="btn_mdu_confirmar" Text="Confirmar" CausesValidation="true"
OnClientClick="comprobar();return false;" OnClick="btn_mdu_confirmar_Click"/>
我檢查,如果返回false,那麼不執行btn_mdu_confirmar_Click但如果我改變它爲真實的;它始終在OnClientClickEvent之後執行。那麼,爲什麼不像OnClientClick =「return comprobar();」甚至OnClientClick =「comprobar();」不工作,看起來像它總是返回一個虛假的真值,即使味精是不同於「」?
這是注意到我沒有能夠調試JavaScript代碼,但如果它正確顯示警報我看不到真正的原因,簡單的返回語句會失敗。
希望你能幫助我,謝謝你的時間。
JavaScript函數對象默認返回'void'。你需要在你的函數comprobar()中設置'return true' – Mouser