残念ながら、これには HTML を返す有効な URL が必要なため、jsFiddle を作成できませんが、要点は入力マスクを使用していることです$.load()
。
脚本:
(function () {
isa.uk.HpiLookup = (function () {
function HpiLookup() { }
HpiLookup.prototype.setupEventHandlers = function () {
return $('#hpiLookupContainer').on("click", "#vehicleRegistrationSearchButton", this.onVehicleRegistrationSearchButton);
};
HpiLookup.prototype.setupInputMasks = function () {
$('#VehicleRegistrationNumber').inputmask("#######", { "placeholder": "" });
};
HpiLookup.prototype.onVehicleRegistrationSearchButton = function (event) {
event.preventDefault();
return $('#hpiLookupContainer').load(
GetVehicleByRegistrationNumberUrl,
{
VehicleRegistrationNumber: $('#VehicleRegistrationNumber').val()
},
this.setupInputMasks);
};
return HpiLookup;
})();
}).call(this);
インデックス.cshtml:
<div id="hpiLookupContainer">
<input id="VehicleRegistrationNumber" type="text">
<button id="vehicleRegistrationSearchButton" type="button">Search</button>
</div>
<script type="text/javascript">
var GetVehicleByRegistrationNumberUrl = '@Url.Action("GetVehicleByRegistrationNumber", "Vehicle")';
var hpiLookup = new isa.uk.HpiLookup();
hpiLookup.setupEventHandlers();
hpiLookup.setupInputMasks();
</script>
$.load() コールバックをこの方法で作成しようとしましたsetupInputMasks
が、そうではありません。後にイベント バインディングを再適用するにはどうすればよいjQuery.load()
ですか?