2017-04-26 49 views
0

我有像這樣我的網頁上隱藏的輸入:刪除與jQuery/JavaScript的表單輸入值的一部分

<input type="hidden" name="required" value="name,town,tel,email"> 

隨着人們填寫它相關的形式,成爲所需要的某些其他領域(即國家成爲需要從國家下拉列表中選擇「美國」時)。

我有兩個函數,一個名爲addToRequiredFields(),另一個名爲removeFromRequiredFields(),當選擇/取消選擇美國時觸發,但刪除一個似乎沒有工作,我不明白爲什麼。

function addToRequiredFields(string) { 
    var required = $('input[name=required]').val(); 
    required += ',' + string; 
    $('input[name=required]').val(required); 
} 

function removeFromRequiredFields(string) { 
    var required = $('input[name=required]').val(); 
    required.replace(',' + string, ''); 
    $('input[name=required]').val(required); 
} 

該功能在選擇下拉菜單的.on('change')處被調用。

+0

你嘗試'=需要required.replace內( '' +字符串, '');'而不只是'required.replace(','+ string,'');' –

+0

哈哈哇,這是那簡單!感謝穆罕默德。我不認爲你可以幫助我'替換()'所有字符串的實例,而不僅僅是一個,你能嗎? – mpdc

+1

順便說一句,'replace'(','+ string'')不起作用如果'string'在開頭 – hindmost

回答

0

雖然它不是根據輸入值驗證控件的正確方法,但我爲您製作了腳本。

function addToRequiredFields(string) { 
 
    var required = $('input[name=required]').val(); 
 
    fieldsArray = required.split(",") 
 
    fieldsArray.push(string) 
 
    $('input[name=required]').val(fieldsArray.join()); 
 
} 
 

 
function removeFromRequiredFields(string) { 
 
    var required = $('input[name=required]').val(); 
 
    fieldsArray = required.split(",") 
 
    fieldsArray = fieldsArray.filter(function(item) { 
 
    return item !== string 
 
}) 
 
    $('input[name=required]').val(fieldsArray.join()); 
 
} 
 

 
console.log($('input[name=required]').val()) 
 

 
addToRequiredFields("age") 
 

 
console.log($('input[name=required]').val()) 
 

 
removeFromRequiredFields("name") 
 

 
console.log($('input[name=required]').val()) 
 

 
removeFromRequiredFields("tel") 
 

 
console.log($('input[name=required]').val()) 
 

 
addToRequiredFields("name") 
 

 
console.log($('input[name=required]').val())
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
</head> 
 
<body> 
 
<input type="hidden" name="required" value="name,town,tel,email"> 
 
<script src="https://code.jquery.com/jquery-3.1.0.js"></script> 
 

 
</body> 
 
</html>

0

使用下面登錄yourremove function.removeFromRequiredFields

//var requiredArr = $('input[name=required]').attr('value'); 
 
    var requiredArr = "name,town,tel,email".split(','); 
 
var rmvIndex = requiredArr.indexOf("tel")//"tel" is your string to be removed 
 

 
var newArr = requiredArr.splice(rmvIndex, 1); 
 

 
$('input').attr('value', newArr.join(','))// set value attribute after removing that string