2015-08-20 47 views
0

我有一個3步(3頁)的窗體。第一頁,要求用戶檢查5個最喜歡的音樂流派。第二頁動態顯示已檢查的流派,然後要求對它們排序,第三頁按順序顯示其音樂流派偏好。使用javascript來防止動態生成的輸入文本框的重複值

我的問題是我如何使用javascript來防止在第二頁上動態生成輸入文本框的重複值?

我發現這個代碼(http://jsfiddle.net/zHJSF/),如果我的文本框字段已設置,但文本框字段正在動態生成將工作。調整代碼或者做一些與循環有關的事情可能會更容易。我不確定。

下面

是用於三個頁面的代碼:

<form id="genre" name="genre" method="post" action="musicsell.php"> 
    <input type="checkbox" name="genre[]" id="Rap" value="Rap"/>Rap<br /> 
    <input type="checkbox" name="genre[]" id="HipHop" value="HipHop"/>HipHop<br /> 
    <input type="checkbox" name="genre[]" id="RnB" value="RnB"/>RnB<br /> 
    <input type="checkbox" name="genre[]" id="Rock" value="Rock"/>Rock<br /> 
    <input type="checkbox" name="genre[]" id="Jazz"value="Jazz"/>Jazz<br /> 

    <p> 
    <input type="submit" value="Next"> 
    <br /> 
    </p> 
</form> 

頁2

<form id="form1" name="form1" method="post" action="musicresults.php"> 
<?php 
$name = $_POST['genre']; 

if(isset($_POST['genre'])) { 
foreach ($name as $genre){ 

?> 

<input type="number" required="required" id="<?php echo $genre ?>" name="music[<?php echo $genre ?>]" max="3" min="1" /><?php echo $genre ?><br /> 

<?php 
    } 
} 
?> 

<input type="submit" name="button" id="button" value="Submit" /></form> 

頁3

<?php 
//Get the form results (which has been converted to an associative array) from the $_POST super global 
$musicgenres = $_POST['music']; 

//Sort the values by rank and keep the key associations. 
asort($musicgenres, SORT_NUMERIC); 

/* 
//Loop over the array in rank order to print out the values. 
foreach($musicgenres as $music => $rank) 
{ 
    echo "$music is your $rank choice"; 
    echo "<br>"; 
}*/ 

foreach($musicgenres as $music => $rank) 
{ 
    array_push($musicstring, $music); 
    echo "$music is your $rank choice"; 
    echo "<br>"; 
} 

$musicstring = implode(", ", $musicgenres); 
echo $musicstring; 
?> 
+0

你可以只使用'array_unique'在PHP中:'$名稱= array_unique($ _ POST [ '風格']);' –

+0

根據W3schools的array_unique函數將刪除重複但不阻止他們.http://www.w3schools.com/php/func_array_unique.asp – user3506743

回答

0

一類添加到輸入我將使用類test 和我使用jQuery所以加了jQuery庫之前添加代碼

$(document).ready(function(){ 
    $('.test').change(function(){ 
    var theinput=$(this); 
    var value=theinput.val(); 
    $('.test').each(function(){ 
     if($(this).val()==value){ 
     theinput.val('');//to remove the value 
     alert('you choose a duplicate');//notify the user why the value removed 
     } 
    }); 
    }); 
});