我使用埃裏克馬丁使用簡單模態形式時獲取文本字段值的問題。 $('#pcs_'+id).val();
似乎什麼也沒有返回(變量_t下面是未定義的)。jquery val()與埃裏克馬丁的簡單模態形式
是在「彈出」模式表單生成的HTML部分:
<form><input type="text" id="pcs_25" value="1"> pcs </form>
<a id="add_basket_25" onclick="return add2Basket(25);" class="button basket_list options_true" href="/emarket/basket/put/element/25/">add to basket</a>
JS部分:
function add2Basket(id){
var _t = $('#pcs_'+id).val();
_t = $.trim(_t);
var rege = /^[\d]{1,}$/; // numbers
if(rege.test(_t)){ //do something
var add2cartlink = $('#add_basket_'+id).attr('href');
add2cartlink += _t;
// window.location.href = add2cartlink;
return false;
}
else {
alert("Only numbers allowed!");
return false;
}
}
請注意,這只是正常工作之外的模態形式,並帶來如果在Modal表單容器中出現問題。
過去有沒有人遇到過這樣的事情?
新增:如果被明確,如$('#pcs_25').val()
或$('#pcs_25').attr('value')
,返回的是硬編碼到HTML部分的價值,這是<input type="text" id="pcs_25" value="1">
。它似乎忽略手動輸入到文本字段中的值。
解決:我應該在此之前,簡單的模態副本已經猜到表單的輸入文本字段到生成的HTML,所以有在生成的HTML頁面其實2 id='pcs_25'
元素。所以jquery選擇器需要更高的精度。 $('.simplemodal-data #pcs_'+id).val()
解決了這個問題。
嘗試製作的顯式調用,改變VAR _t = VAR _t = $( '#pcs_25')VAL();和var add2cartlink = $('#add_basket_25')。attr('href');結果是什麼? –
嘗試簡化Javascript – ShaunOReilly
爲什麼要對ID進行硬編碼,如果可以遍歷前一個或下一個元素? – ShaunOReilly