2017-04-26 7 views
0

でフォーム入力の値の一部を削除する:私はそうのように私のページ上の隠し入力を持ってjQueryの/ JavaScriptを

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

人々はそれが関連付けられていますフォームに記入したように、特定の他のフィールドが必要になる(つまり、国家が必要となりCountryドロップダウンから "USA"を選択したとき)。

私はaddToRequiredFields()という名前のファンクションとremoveFromRequiredFields()という名前のファンクションを持っていますが、USAが選択/選択解除されていますが、削除されたものは機能していないように見えます。

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

を下記のログインを使用し、 '、' '); 'just.replace('、 '+ string' ');'の代わりに' –

+0

ハワイ、それはそれは簡単!ありがとうモハメド。私は、文字列のすべてのインスタンスをreplace()するのを手伝ってくれるとは思いません。 – mpdc

+1

BTW: 'string'が先頭にある場合、' replace( '、' + 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

あなたは+文字列 ''( `必要= required.replaceを試してみました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

関連する問題