2015-07-02 34 views
2

在輸入'number'和值「1,5」類型的輸入後,瀏覽器(Chrome 43.0.2357.130,FF 38.0.5)發送帶有點的數字作爲小數點分隔符,但輸入的屬性lang =「cs」(在捷克共和國,我們使用十進制逗號),所以對於ASP.NET MVC,這是不正確的格式。用點替換十進制逗號的數字輸入

如何設置瀏覽器(表單/輸入)來發送用戶真正填充的內容(在我的情況下爲「1.5」)?

從瀏覽器發送表單數據:

__RequestVerificationToken:KJG1yJxm-1EcUHPwgvr0gPpkyoEHHHcTfSu6hHvaKDA_XKHTzWfPfUJtAr11gNiR_euG_jWYmXlrMO7dyhSf7g4K74eOVTtEzLQ1OdrTLZ_cbIyyYj5vrgxlk81JzuhM0 
PaymentMethodId:8 
PaymentMethod:Direct payment 
Provider:Direct payment 
MinAmount:1,00000000 
MaxAmount:5000,00000000 
Amount:1.5 
+0

我們能否看到您的代碼? –

+0

您的意思是html,razer視圖或後期操作? –

回答

0

Oukey,它看起來像我找到了解決辦法,但它看起來像例子中,你如何處理類似的問題...

public class ApolloModelBinder : DefaultModelBinder 
{ 
    protected override void BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor) 
    { 
     var request = controllerContext.HttpContext.Request; 

     decimal i; 
     var value = request.Form[propertyDescriptor.Name]; 
     if (propertyDescriptor.PropertyType == typeof(decimal) && decimal.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out i)) 
     { 
      propertyDescriptor.SetValue(bindingContext.Model, i); 
      return; 
     } 

     base.BindProperty(controllerContext, bindingContext, propertyDescriptor); 
    } 
} 
2

支持<input type="number">的瀏覽器將始終發送.作爲小數點分隔符。您無法更改此設置,因爲這是針對<input type="number">的HTML5規範。 lang屬性與發送到服務器的數據無關:瀏覽器必須始終使用.。但是,lang屬性可能用於顯示目的。

但是,不支持<input type="number">的瀏覽器會按照您輸入的號碼發送該號碼(例如,使用,)。因爲服務器不知道瀏覽器是否支持<input type="number">,這使得解析非常容易出錯(是「1.000」,一千個或一個?),所以這是非常有問題的(也是非常偏心的)。

您可以控制發送內容的唯一方法是使用<input type="text">。如果你想要微調功能,你需要使用自定義JavaScript庫,比如jQuery UI。

這也是爲什麼ASP.NET MVC編輯器()將使用<input type="text">默認的類型,如小數,而不是<input type="number">。請參閱http://www.w3.org/TR/2014/REC-html5-20141028/forms.html#input-author-notes

請注意,Internet Explorer將在用戶鍵入它們時發送數字輸入,而忽略規範。

+0

我正在尋找規範,但我什麼都沒有發現小數分隔符,所以你可以給我鏈接?那麼,這是一個使用lang attribut的理由,通過這個屬性你可以說出你目前的工作文化。我想使用數字的原因是移動設備上的數字鍵盤 - 該字段用於金錢數量,所以這是使用數字的很好例子,我想。 –

+0

@SebastianBusek,我添加了一個鏈接到HTML5規範,對此進行評論。 – Ruben

相關問題