2017-10-01 19 views
1

以下のフォームがあります。「参加」ボタンをクリックすると、削除ボタンに変わります。私は削除を言うためにテキストを変更し、それが何をするかを変えたいと思う。フォームのボタンをクリックしたときのボタンの変更方法

これは私のコードです:

<form action="riderJoin.php" method="post"> 
    <input type ="hidden" name = id value="<?php echo $row['post_id']; ?>" > 
    <input type =submit class="edit_btn " name = "submit" value = "Join">   
</form> 

<script type="text/javascript"> 
var x = document.getElementsByClassName('edit_btn'); 

<?php if (isset($_POST['submit'])) { ?> 
    var i = <?php echo $_SESSION['postId'] ; ?> - 1 ; 
    var y = x[i]; 
    x[i].textContent = "Delete"; 
    x[i].style.backgroundColor = "red"; 
    x[i].style.color = "white"; 
<?php }?> 
</script> 

私はVAR xにクラス名でボタンを取得し、x[i]を使用して、X内のアイテムをつかむありますが、私は、テキストの内容を変更しようとすると、そうでありません変化する。しかし、背景色を赤に設定すると、完全に機能します。

どうしたのですか?

+0

何が問題になるのか理解できるように、要素自体を含むHTMLを含めるように質問を編集してください。また、それを作業用スニペットとして追加することもできます。 [実行可能コードスニペットの作成方法](https://stackoverflow.blog/2014/09/16/introducing-runnable-javascript-css-and- html-code-snippets /) – FluffyKitten

+0

私はいくつかのhtmlコードを追加しました。あなたの親切な思い出をありがとう。 –

+0

x [i] .textContentではなく、x [i] .valueを変更する必要があります。説明とデモの解答を参照してください。それがあなたの問題を解決するなら、あなたの質問が閉じられるようにそれを受け入れることを検討してください(そして、私たちは両方ともいくつかのrepポイントを取得します:) [誰かが私の質問に答えたらどうすればいいですか?](https://stackoverflow.com/help/someone-答え) – FluffyKitten

答えて

0

UPDATE:あなたがボタンを作成するとボタンテキスト

を変更し、変更したいテキストがvalue属性であることがわかります。

<input type =submit class="edit_btn" name = "submit" value = "Join"> 

これはあなたが変更したいものです。textContentではなくです。

x[i].value = "Delete"; 

UPDATE:最初に、例えば、我々はそれでJavaScriptを見つけることができるように、フォームにIDを追加する必要があります、またアクションを変更するにはフォームのアクションに

を変更

<form action="riderJoin.php" method="post" id="subscriptionform"> 

そしてJavaScriptでは、あなたはそれを得ると、このようなアクションを変更することができます。

var formelement = document.getElementById('subscriptionform'); 
formelement.action = "newAction.php"; // set the action to whatever page you want 


作業:また意志のテキストと新しいアクションを変更するにはボタンをクリックしてください

function changebutton() { 
 

 
    // get the button and change it 
 
    var x = document.getElementsByClassName('edit_btn'); 
 
    x[0].value = "Delete"; 
 
    x[0].style.backgroundColor = "red"; 
 
    x[0].style.color = "white"; 
 

 
    // change the action of the form 
 
    var formelement = document.getElementById('subscriptionform'); 
 
    formelement.action = "yourNewAction.php"; 
 

 
    // Just for testing - gets the form action & displays it 
 
    updateStatusText(); 
 
} 
 

 
// Just for testing - gets the form action & displays it 
 
function updateStatusText(){ 
 
    var formelement = document.getElementById('subscriptionform'); 
 
    currentaction = formelement .action; 
 
    var textelement = document.getElementById('actiontext'); 
 
    textelement.innerText= "The form action is: "+currentaction; 
 
} 
 
updateStatusText();
<form action="yourAction.php" method="post" id="subscriptionform"> 
 
    <input type=submit class="edit_btn " name="submit" value="Click Me..." onclick="changebutton(); return false;"> 
 
</form> 
 

 
<p id="actiontext"></p>

012を表示することが
+0

ありがとうございました!では、入力の値を変更するのではなく、新しい要素(別のボタン)を追加したいのですが?:D –

+0

@ YeungHarryそれは別の質問です。技術的には新しい質問として尋ねるべきですが、何を意味するのか教えてください。あなたは正確に何を達成しようとしていますか? [参加]ボタンの操作を別の機能に変更しますか?または、「参加ボタン」を削除して新しいものを追加しますか?または、別のボタンを追加し、*「参加」ボタンを押し続けますか? – FluffyKitten

+0

"参加"ボタンを削除して、別のアクションをトリガーできる "削除"ボタンを追加したいと思います。 –

0
あなただけの1行でjQueryを使ってそれを行うことができ

...

$('input.edit_btn').eq(i).val('Delete').css({ 'background-color':'red', 'color':'white' }); 

が、私はそれが役に立てば幸い

+0

代わりに.css()を使用するのではなく、.addClass()を使用してください。 – Pauloscorps

関連する問題