我有一些jquery代码,用于从输入的zip中自动填充城市和州。然而,将代码复制并粘贴到需要zip字段“jQueryFyed”的每个视图看起来似乎很糟糕但我似乎无法让它工作,除非它在每个视图中具体。当我把它放在一个文件中并在脚本文件的顶部包含脚本文件时,当我在JS的顶部设置一个中断时没有任何东西被击中。
以下是目前的进展:
$(function(){
$('.ZipCode').keyup(function () {
var zip_in = $(this);
var zip_box = $('#zipbox');
if (zip_in.val().length < 5) {
// zip_box.removeClass('error success');
}
else if (zip_in.val().length > 5) {
}
else if ((zip_in.val().length == 5)) {
// Make HTTP Request
$.ajax({
url: "http://api.zippopotam.us/us/" + zip_in.val(),
cache: false,
dataType: "json",
type: "GET",
success: function (result, success) {
// Make the city and state boxes visible
places = result['places'][0];
if ($('.City').length) // use this if you are using id to check
{
$('.City').val(places['place name']);
}
if ($('.State').length) // use this if you are using id to check
{
$(".State").val(convert_state(places['state'], 'abbrev'));
}
// if (document.get)
//zip_box.addClass('success').removeClass('error');
},
error: function (result, success) {
//zip_box.removeClass('success').addClass('error');
}
});
}
function convert_state(statename, to) {
var name = statename.toUpperCase();
var states = new Array({ 'name': 'Alabama', 'abbrev': 'AL' }, { 'name': 'Alaska', 'abbrev': 'AK' },
{ 'name': 'Arizona', 'abbrev': 'AZ' }, { 'name': 'Arkansas', 'abbrev': 'AR' }, { 'name': 'California', 'abbrev': 'CA' },
{ 'name': 'Colorado', 'abbrev': 'CO' }, { 'name': 'Connecticut', 'abbrev': 'CT' }, { 'name': 'Delaware', 'abbrev': 'DE' },
{ 'name': 'Florida', 'abbrev': 'FL' }, { 'name': 'Georgia', 'abbrev': 'GA' }, { 'name': 'Hawaii', 'abbrev': 'HI' },
{ 'name': 'Idaho', 'abbrev': 'ID' }, { 'name': 'Illinois', 'abbrev': 'IL' }, { 'name': 'Indiana', 'abbrev': 'IN' },
{ 'name': 'Iowa', 'abbrev': 'IA' }, { 'name': 'Kansas', 'abbrev': 'KS' }, { 'name': 'Kentucky', 'abbrev': 'KY' },
{ 'name': 'Louisiana', 'abbrev': 'LA' }, { 'name': 'Maine', 'abbrev': 'ME' }, { 'name': 'Maryland', 'abbrev': 'MD' },
{ 'name': 'Massachusetts', 'abbrev': 'MA' }, { 'name': 'Michigan', 'abbrev': 'MI' }, { 'name': 'Minnesota', 'abbrev': 'MN' },
{ 'name': 'Mississippi', 'abbrev': 'MS' }, { 'name': 'Missouri', 'abbrev': 'MO' }, { 'name': 'Montana', 'abbrev': 'MT' },
{ 'name': 'Nebraska', 'abbrev': 'NE' }, { 'name': 'Nevada', 'abbrev': 'NV' }, { 'name': 'New Hampshire', 'abbrev': 'NH' },
{ 'name': 'New Jersey', 'abbrev': 'NJ' }, { 'name': 'New Mexico', 'abbrev': 'NM' }, { 'name': 'New York', 'abbrev': 'NY' },
{ 'name': 'North Carolina', 'abbrev': 'NC' }, { 'name': 'North Dakota', 'abbrev': 'ND' }, { 'name': 'Ohio', 'abbrev': 'OH' },
{ 'name': 'Oklahoma', 'abbrev': 'OK' }, { 'name': 'Oregon', 'abbrev': 'OR' }, { 'name': 'Pennsylvania', 'abbrev': 'PA' },
{ 'name': 'Rhode Island', 'abbrev': 'RI' }, { 'name': 'South Carolina', 'abbrev': 'SC' }, { 'name': 'South Dakota', 'abbrev': 'SD' },
{ 'name': 'Tennessee', 'abbrev': 'TN' }, { 'name': 'Texas', 'abbrev': 'TX' }, { 'name': 'Utah', 'abbrev': 'UT' },
{ 'name': 'Vermont', 'abbrev': 'VT' }, { 'name': 'Virginia', 'abbrev': 'VA' }, { 'name': 'Washington', 'abbrev': 'WA' },
{ 'name': 'West Virginia', 'abbrev': 'WV' }, { 'name': 'Wisconsin', 'abbrev': 'WI' }, { 'name': 'Wyoming', 'abbrev': 'WY' }
);
var returnthis = false;
$.each(states, function (index, value) {
if (to == 'name') {
if (value.abbrev == name) {
returnthis = value.name;
return false;
}
} else if (to == 'abbrev') {
if (value.name.toUpperCase() == name) {
returnthis = value.abbrev;
return false;
}
}
});
return returnthis;
}
});
});
这显示了我在视图顶部加载脚本的位置。
@modeltype xxxxx_Models.R_X_models.RVM
<script type="text/javascript" src="../../Scripts/jquery.js"></script>
<script src="~/Scripts/jquery-1.11.1.min.js"></script>
<script src="~/CustomScripts/ZipCodes.js"></script>
让这个可以重复使用已经证明对于像我这样的新人来说可以重复使用我的意思是我如何通过将其放在单独的js文件中然后当我将它包含在视图中时将其用于实现使用ZipCode
State
City
类自动进行邮政处理?上面的代码正在使用??