2015-09-23 11 views
7

Jqueryでは、スペース文字を '%20'に置き換えます。単一の形式ではない他の形式で作業しています。 inヘッダはUncaught TypeError:Jqueryで未定義のプロパティ 'trim'を読み取ることができません。

<header> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
</header> 

となります。他の形式のコードを使用しています。

var vname = $("#EarningsTypes").val(); 
vname = vname.trim().replace(/ /g, '%20'); 
jQuery.noConflict(); 
+0

vnameは未定義です...何もありません – Akki619

+0

'#EarningTypes' ele質問で「html」と答える? – guest271314

答えて

11

あなたはエラーを意味

Uncaught TypeError: Cannot read property 'trim' of undefined in Jquery

取得している、変数vnameundefinedです。このエラーが発生しないようにするには、3進演算子を使用して、undefinedの場合は文字列のデフォルト値を空の文字列に設定します。また、あなたはtrimをサポートしていない古いブラウザを使用している場合、あなたはpolyfill from MDN

if (!String.prototype.trim) { 
    String.prototype.trim = function() { 
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); 
    }; 
} 
を使用することができ、デフォルト値

var vname = $("#EarningsTypes").val() || ''; 

を設定するために||を使用することができます

var vname = $("#EarningsTypes").val() == undefined ? '' : $("#EarningsTypes").val().trim(); 
vname = vname.replace(/ /g, '%20'); 

+6

または単にこれを使用してください: 'var vname = $("##EarningsTypes ")。val()|| ""。 – Jai

関連する問題