2012-03-19 48 views
1

我使用的是從數字布什jQuery的面膜:http://digitalbush.com/projects/masked-input-plugin/jQuery的面膜依賴於下拉值

我有一個客戶註冊形式引用了一個面具,但因爲我的客戶羣是無論是在美國和加拿大的我需要對郵政/郵區代碼掩模來改變:

電流掩模規則:

$(function($){ 
jQuery(function($){ 
    $("#postal_code").mask("a9a-9a9"); 
}); 
})(jQuery); 

的形式是非常標準的,並遵循以下格式:

<select id="country" name="country"> 
<option selected="selected" value="0"></option> 
<option value="CA">Canada</option> 
<option value="US">United States</option> 
</select> 

<input type="text" id="postal_code" name="postal_code" /> 

我希望有人能向我解釋我如何改變$(「postal_code」)。mask(「a9a-9a9」);到$(「postal_code」)。mask(「99999」); 當從下拉列表中選擇美國時。

在此先感謝

回答

4

像這樣的東西應該工作,我猜...

$('#country').change(function() { 
    var $selected = $(this).find('option:selected'); 
    if ($selected.val() === 'US') { 
     $("#postal_code").mask("99999"); 
    } else { 
     $("#postal_code").mask("a9a-9a9"); 
    } 
}); 
+0

涼爽的感謝,這將使其成爲很容易 – 2012-03-19 00:50:59

0

是 - 請看到這裏的工作版本 - 我做了的jsfiddle你。它可以根據你的需要工作。

你需要在這裏remask之前使用UNMASK財產(以前的鏈接是啞彈

http://jsfiddle.net/XJZvJ/33/

$('#country').change(function() { 

    if ($('#country option:selected').val() == 'US') { 
     $(".postal_code").unmask("") 
     $(".postal_code").mask("99999"); 

    } else { 
     $(".postal_code").mask("a9a-9a9"); 
    } 
}); 
​ 

這將有助於。乾杯

+0

謝謝,這也像一個魅力。 – 2012-03-19 06:30:32

+0

不用擔心男人!大聲笑花了一些時間爲你建立它,當你問,但我想我幾分鐘想你,請確保你使用揭露其他會有一些奇怪的行爲,有一個好的,歡呼 – 2012-03-19 06:31:40