-1

2 つの ahref タグに基づいてフォーム アクションを変更しようとしています。1 つはボタンで、もう 1 つはテキストです。ボタンをクリックすると、フォームのアクションは /profile.php?id= になり、テキストがクリックされた場合、アクションは /profile.php?uid= になるはずです この問題で立ち往生しています。これがhtmlの私のコードです:

 <a href = "profile.php?/edit/employment-information/" id="edit"><input type="button" name="editemp" id="edit" value="Edit">
 <a href="profile.php?/add/employment-information/" id="add">Add Information</a>
 <form name="empform" method="post" action="profile.php" autofocus id="form">
<input name="employ" type="text" id="employ" pattern="[A-Za-z ]{3,20}" placeholder="Who is your employer?">
<input name="position" type="text" id="position" pattern="[A-Za-z ]{3,20}" placeholder="What is your job description?">
<input name="empadd" type="text" id="empadd" pattern="[A-Za-z0-9@#$% ,]{5,30}" placeholder="Where is your work address?">
<input name="empcont" type="text" id="empcont" pattern="[0-9]{11}" title="11-digit number" placeholder="Contact number">
4

2 に答える 2

2

でフォームアクションを変更できます

$("#form").attr("action", "your new action here");

clickこれをハンドラー内に貼り付けるだけです。

$("#elementID").click(function() {
    //change form here
});

コードのどのボタンがこれを変更する必要があるのか​​ よくわからないので、変更できるようにかなり一般的なものにしました。

于 2013-08-28T15:04:05.567 に答える
0

両方のアンカーにイベントリスナーを追加するだけで、各アンカーはフォームを変更するための独自のコードを取得します

$(document).ready(function(){
    $('#edit').on('click', function(e){
        e.preventDefault(); // Dont actually go to the location of the anchor
         $('#form').attr('action', 'URL_IF_EDIT_IS_CLICKED'); // change it to this url
    });

    $('#add').on('click', function(e){
        e.preventDefault(); // Dont actually go to the location of the anchor
        $('#form').attr('action', 'URL_IF_ADD_IS_CLICKED'); // change it to this url
    });
});

より多くのアンカーがある場合は、次の方法の方が簡単かもしれません: 最初にクラスをアンカーに追加し (「formActionChanger」としましょう)、次に:

$(document).ready(function(){
    // eventlistener on the anchors:
    $('.formActionChanger').on('click', function(e){
        e.preventDefault(); // Dont actually go to the location of the anchor
        var newAction;
        // start a switch to decide which new action is going to be used
        switch(this.id){
            case 'edit': newAction = 'URL_IF_EDIT_IS_CLICKED'; break;
            case 'add':  newAction = 'URL_IF_ADD_IS_CLICKED';  break;
            default:     newAction = 'DEFAULT_URL';            break;
        }
        $('#form').attr('action', newAction); // change it to this url
    });
});
于 2013-08-28T15:06:40.720 に答える