Saya punya kebiasaan validasi fungsi dalam JavaScript di user control pada .Net 2.0 situs web yang memeriksa untuk melihat bahwa biaya yang dibayar tidak lebih dari jumlah biaya karena.
I've ditempatkan validator kode di ascxfile, dan saya juga telah mencoba menggunakan
Halaman.ClientScript.RegisterClientScriptBlock()` dan dalam kedua kasus validasi kebakaran, tetapi tidak dapat menemukan fungsi JavaScript.
Output di Firefox's kesalahan konsol "feeAmountCheck tidak didefinisikan"
. Berikut ini adalah fungsi (ini diambil langsung dari firefox->lihat sumber)
<script type="text/javascript">
function feeAmountCheck(source, arguments)
{
var amountDue = document.getElementById('ctl00_footerContentHolder_Fees1_FeeDue');
var amountPaid = document.getElementById('ctl00_footerContentHolder_Fees1_FeePaid');
if (amountDue.value > 0 && amountDue >= amountPaid)
{
arguments.IsValid = true;
}
else
{
arguments.IsValid = false;
}
return arguments;
}
</script>
Ide mengapa fungsi isn't yang ditemukan? Bagaimana saya bisa mengatasi masalah ini tanpa harus menambahkan fungsi untuk saya master page atau mengkonsumsi halaman?
Cobalah mengubah nama argumen untuk pengirim
dan args
. Dan, setelah anda telah bekerja, beralih ke ScriptManager.RegisterClientScriptBlock
, terlepas dari AJAX menggunakan.
Sementara aku masih ingin jawaban untuk mengapa javascript saya wasn't diakui, solusi yang saya temukan di sementara itu (dan harus dilakukan di tempat pertama) adalah dengan menggunakan Asp:CompareValidator
bukan Asp:CustomValidator
.
Anda juga bisa menggunakan:
var amountDue = document.getElementById('<%=YourControlName.ClientID%>');
Yang akan secara otomatis mengatasi id klien untuk elemen tanpa anda harus mencari tahu bahwa itu's disebut 'ctl00_footerContentHolder_Fees1_feedue'
.